题目描述
输入一个链表,输出该链表中倒数第k个结点。
分析
1、快慢指针法
快指针先往前走k步,注意判断边界,然后快慢一起走,当快指针为none的时候,慢指针走到了倒数第k个节点。
public class Solution {
public ListNode FindKthToTail(ListNode head,int k) {
if(head == null || k <= 0) {
return null;
}
ListNode fast = head;
ListNode slow = head;
while(k-- > 1) {
if(fast.next != null) {
fast = fast.next;
}else {
return null;
}
}
while(fast.next != null) { //循环退出时fast指向了最后一个节点
fast = fast.next;
slow = slow.next;
}
return slow;
}
}