文章目录
- 1.问题描述
- 2.代码详情
1.问题描述
实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。
输入: 1->2->3->4->5 和 k = 2
输出: 4
2.代码详情
设置快和慢两个指针,初始化时快指针比慢指针多走k-1步,然后两个指针每次都走一步,当快指针到达终点时,慢指针正好处在倒数第k的位置
java:
/*** 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=1;i < k ;i++){fast = fast.next;}while(fast.next != null){fast = fast.next;slow = slow.next;}return slow.val;}
}