链表中第k个结点
输入一个链表,输出该链表中倒数第k个结点。
如果该链表长度小于k,请返回空。
思路
让第一个指针先走到k的位置,再两两个指针一起走,当第一个指针到达最后一个位置的时候,第二个指针就是倒数第k个
public ListNode FindKthToTail (ListNode pHead, int k) {
if(pHead==null||k==0)
return null;
// write code here
int count = 1;
ListNode p = pHead;
while(p.next!=null){ // k若等于2,指针移动1次即可
p = p.next;
if(count>=k){ //从第7个开始,第二个指针开始后移
pHead = pHead.next;
}
count++;
}
if(count<k) //如果count小于k,说明链长度小于k
return null;
return pHead;
}