思路:
用两个指针遍历,先让快指针出发,当快指针走过k+1个元素时,慢指针开始移动,直到快指针指向null,慢指针指向的节点即为倒数第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) {
ListNode temp1=head,temp2=head;
int a=k;
int count=0;
while(temp2!=null){
temp2=temp2.next;
count++;
// if(a<1) temp1=temp1.next;
// a--;
if(count>=(k+1))temp1=temp1.next;
}
if(count<k)return null;
return temp1;
}
}