014链表中倒数第K个结点
题目:
输入一个链表,输出该链表中倒数第k个结点。
方法:双指针法
思路:新建两个指针,指向头结点,然后让一个结点右移k-1个单位,指向第k个结点,再同时后移,直到一个节点到最后,即可
技巧:同时后移(length-k)个单位,第二个指针指向的则向的则是倒数第k个结点。
代码:
public ListNode FindKthToTail(ListNode head,int k) {
if(head==null||k<=0) return null;
ListNode p = head;
ListNode q = head;
for (int i = 1; i <k ; i++) {
if(p.next!=null){
p=p.next;
}else{
return null;
}
}
while(p.next!=null){
p=p.next;
q=q.next;
}
return q;
}