跟删除链表中倒数第n个结点做法一样,用快慢指针,只是本题需要加多一个判断,当快指针先走完的时候,证明倒数第k个结点已经超出了链表的头结点,此时直接返回null
public class Solution {
public ListNode FindKthToTail(ListNode head,int k) {
if(head == null)
return head;
ListNode pre = new ListNode(0);
pre.next = head;
ListNode start = pre;
ListNode end = pre;
while(k != 0){
start = start.next;
if(start == null)
return null;
k--;
}
while(start.next != null){
start = start.next;
end = end.next;
}
return end.next;
}
}

京公网安备 11010502036488号