题目
实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。
说明:
给定的 k 保证是有效的。
思路
双指针,先利用第一个指针,走k个位置,再有第二个指针从头开始出发,当第一个指针到达链表尾部,第二个指针刚刚好到达所求的节点!
代码
class Solution {
public int kthToLast(ListNode head, int k) {
ListNode copy = head;
int count=1;
while(count<k)
{
head=head.next;
++count;
}
ListNode right = head;
while(right.next!=null)
{
right=right.next;
copy=copy.next;
}
return copy.val;
}
}
结果
面试题中将经常会问到!