文章目錄
- 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;}
}