题目描述
输入一个链表,输出该链表中倒数第k个结点。
解题思路
建立两个指针,一个领先另一个k步,同时前进,前面的指针到头,后面的那个是倒数第k个
代码
public ListNode FindKthToTail(ListNode head,int k) {
if(head==null || k==0) return null;
int len=0;
ListNode p = head;
while(p!=null){
len+=1;
p=p.next;
}
if(len<k) return null;
ListNode node1 = head;
ListNode node2 = head;
// node2领先node1k步
for(int i=0;i<k;i++){
node2 = node2.next;
}
while(node2!=null){
node1 = node1.next;
node2 = node2.next;
}
return node1;
}