双指针-链表中倒数第k个结点
程序员文章站
2022-05-06 21:35:42
...
解题思路:快慢指针
先让快指针走k步,然后两个指针同步走,当快指针走到头时,慢指针就是链表倒数第k个节点。
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode FindKthToTail(ListNode head,int k) {
if(head==null||k==0) return null;
ListNode fast=head;
ListNode slow=head;
for(int i=0;i<k;i++){
if(fast==null) return null;
fast=fast.next;
}
while(fast!=null){
fast=fast.next;
slow=slow.next;
}
return slow;
}
}
力扣:
力扣意思同剑指offer题目描述
输入一个链表,输出该链表中倒数第k个结点。
力扣代码同本文的剑指offer