题目描述:
输入一个链表,输出该链表中倒数第k个结点。
解题思路:
使用两个指针来解决这个问题,第一个指针先走k步,然后第二个指针和第一个指针同时每次走一步,最后当第一个指针到达最后的位置,就可以返回第二个指针,同时需要注意k值大于链表的长度。
代码(java):
/*
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 p1=head;
ListNode p2=head;
while(p1!=null && k>0){
p1=p1.next;
k--;
}
if(k>0)return null;
while(p1!=null){
p1=p1.next;
p2=p2.next;
}
return p2;
}
}