这是一道简单的题目,主要是运用快慢指针的思想,初始化两个指针都指向 head,然后先让快指针向前走 k 步,然后再让快指针和慢指针一起往前面走,直到快指针为空,也就是走到了链表的尾结点,这时候慢指针刚好停在了倒数第 k 个节点.有了思路代码实现就比较简单了.
代码实现
class Solution {
public int kthToLast(ListNode head, int k) {
ListNode fast = head;
ListNode slow = head;
for (int i = 0;i < k; i ++) {
fast = fast.next;
}
while (fast != null) {
fast = fast.next;
slow = slow.next;
}
return slow.val;
}
}
提交结果



