1. 程式人生 > 其它 >劍指offer連結串列——判斷連結串列是否有環

劍指offer連結串列——判斷連結串列是否有環

技術標籤:《劍指offer》連結串列指標單鏈表leetcode面試

劍指 Offer 22. 連結串列中倒數第k個節點

題目描述:

輸入一個連結串列,輸出該連結串列中倒數第k個節點。為了符合大多數人的習慣,本題從1開始計數,即連結串列的尾節點是倒數第1個節點。例如,一個連結串列有6個節點,從頭節點開始,它們的值依次是1、2、3、4、5、6。這個連結串列的倒數第3個節點是值為4的節點。

示例:

給定一個連結串列: 1->2->3->4->5, 和 k = 2.
返回連結串列 4->5.

思路:

用兩個指標,讓第一個先走k步,然後兩個指標一起移動,當第一個指標到最後一個節點處,第二個指標就在倒數第K個節點

程式碼:

var getKthFromEnd = function (head, k) {
    let first = head,
        second = head;
    while (k !== 0) {
        first = first.next;
        k--;
    }
    while (first !== null) {
        first = first.next;
        second = second.next;
    }
    return second;
};