题目描述
思路分析
这是一道简单的题目,主要是运用快慢指针的思想,初始化两个指针都指向 head,然后先让快指针向前走 k 步,然后再让快指针和慢指针一起往前面走,直到快指针为空,也就是走到了链表的尾结点,这时候慢指针刚好停在了倒数第 k 个节点.有了思路代码实现就比较简单了.
代码实现
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ 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; } }
提交结果