劍指offer連結串列——判斷連結串列是否有環
阿新 • • 發佈:2020-12-31
技術標籤:《劍指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;
};