题目描述:
输入一个链表,输出该链表中倒数第k个结点。
思路分析:
设置两个指针,一个fast一个slow,都从链表头开始,让fast先走k步,然后两个指针一起走,当fast走到尾部,那么slow指针指向的就是倒数第K个节点。
代码:
public class Solution {
public ListNode FindKthToTail(ListNode head,int k) {
ListNode fast=head;
ListNode slow=head;
if(head==null)
return null;
int i=0;
while(fast!=null){
fast=fast.next;
i++;
if(i==k)
break;
}
if(i!=k)
return null;
while(slow!=null&&fast!=null){
slow=slow.next;
fast=fast.next;
}
return slow;
}
}