1、来自牛客:链表中倒数第k个结点
输入一个链表,输出该链表中倒数第k个结点。
2、思路,设置两个指针,一个位置为0,另一个位置为k-1,同时进行一步步探测,当在k-1的指针走到末尾时,位置为0的指针为倒数第k的位置。
3、代码:
public ListNode FindKthToTail(ListNode head,int k) {
int i, pos = k - 1;
if(head == null || pos < 0)
return null;
ListNode first = head, second = head;
//让探测指针先走k-1步
for(i = 0; i < pos; i++){
second = second.next;
if(second == null){
return null;
}
}
while(second.next != null){
first = first.next;
second = second.next;
}
return first;
}