面試題 02 02 返回倒數第 k 個節點

2021-10-02 19:52:04 字數 654 閱讀 5097

實現一種演算法,找出單向鍊錶中倒數第 k 個節點。返回該節點的值。

注意:本題相對原題稍作改動

示例:輸入: 1->2->3->4->5 和 k = 2

輸出: 4

運用雙指標思路,k為目標節點距離最後乙個節點的距離,所以先定義快指標移動k個距離,此時定義慢指標,兩個指標同時移動,當快指標移動到鍊錶末尾時結束,這是慢指標所指的值就是目標節點的值

# definition for singly-linked list.

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

class solution:

def kthtolast(self, head: listnode, k: int) -> int:

fast=head

slow=head

while(k):

fast=fast.next

k-=1

while(fast):

fast=fast.next

slow=slow.next

return slow.val

面試題02 02 返回倒數第k個節點

實現一種演算法,找出單向鍊錶中倒數第k個節點,返回該節點的值 示例 輸入 1 2 3 4 5 和 k 2 輸出 4分析 可以先遍歷一遍鍊錶,計算鍊錶的長度 然後根據正反向關係就可以得到節點 definition for singly linked list.struct listnode class...

面試題 02 02 返回倒數第 k 個節點

題目鏈結 實現一種演算法,找出單向鍊錶中倒數第 k 個節點。返回該節點的值。注意 本題相對原題稍作改動 示例 輸入 1 2 3 4 5 和 k 2 輸出 4 說明 給定的 k 保證是有效的。題目要求是返回倒數第k個節點,不要看錯了,其次是保證k是有效的,也就是說不會出現找不到的情況。假設有n個數,讓...

面試題 02 02 返回倒數第 k 個節點

題目 實現一種演算法,找出單向鍊錶中倒數第 k 個節點。返回該節點的值。注意 本題相對原題稍作改動 示例 輸入 1 2 3 4 5 和 k 2 輸出 4 說明 給定的 k 保證是有效的。解題思路 1.快慢指標法,兩個指標初始值都指向頭節點 2.快指標先走k步,然後慢指標再走 3.當快指標遍歷到鍊錶結...