力扣java-返回倒數第k個節點
阿新 • • 發佈:2021-05-18
題目描述
實現一種演算法,找出單向連結串列中倒數第 k 個節點。返回該節點的值。
思路:
雙指標
第一個指標先走k步,然後第二個指標在從頭走,這個時候兩個指標同時移動。
當第一個指標移動到末尾的時候,返回第二個指標就可以了,第二個指標指向的值就是我們找的倒數第k個結點。
class Solution {
public int kthToLast(ListNode head, int k) {
ListNode first = head;//初始化first指標指向頭結點
ListNode second = head;//初始化second指標指向頭結點
while (k -- > 0){//first指標先走k步
first = first.next;
}
while(first != null){//迴圈條件是first指標不為空,走到null說明first走到連結串列的末尾
//兩個指標分別移動
first =first.next;
second =second.next;
}
return second.val;//返回second指標指向的值
}
}