解题思路:用快慢两个指针来解,这两个指针的位置相差k-1个距离,当快指针走到最后一个节点的时候,慢指针指向的位置就是我们要的倒数第k个节点了。
思想就是这么简单了,很多链表类的题目都是活用指针就可以解决的,一个指针不可以的时候就两个指针来完成。
public ListNode FindKthToTail(ListNode head, int k)
{
if(k <= 0)
return null;
ListNode low = head;
ListNode fast = head;
for(int i=1; i < k;i++){
if(fast == null)
return null;
else
fast = fast.next;
}
if(fast == null)
return null;
while(fast.next != null){
low = low.next;
fast = fast.next;
}
return low;
}