链表中倒数第k个节点(Java)
**题目:**本题主要是像考查代码的鲁棒性,思路是利用两个指针,第一个指针走k-1步,第二个指针再同时跟它一起往前走。当第一个指针走到最后。第二个指针指向的就是倒数第k个节点。
/**
* @desc 输入一个链表,输出该链表中倒数第k个结点。
* @author zhaoliang
* @date 20200430
*/
public class Main14 {
//输入一个链表,输出该链表中倒数第k个结点。
public ListNode FindKthToTail(ListNode head,int k) {
if (head==null || k==0){
return null;
}
ListNode later =head;
ListNode former =head;
for (int i=0;i<k;i++){
if (former==null){
return null;
}
former=former.next;
}
while (former!=null){
former = former.next;
later = later.next;
}
return later;
}
}