Leetcode 面試題18 刪除鍊錶的節點

2021-10-06 09:59:05 字數 1037 閱讀 7827

給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。

返回刪除後的鍊錶的頭節點。

注意:此題對比原題有改動

輸入: head =[4

,5,1

,9], val =

5輸出:[4

,1,9

]解釋: 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 4

->1-

>

9.

輸入: head =[4

,5,1

,9], val =

1輸出:[4

,5,9

]解釋: 給定你鍊錶中值為 1 的第三個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 4

->5-

>

9.

說明:

加乙個虛擬頭結點,再從頭遍歷找到目標節點刪掉即可。

# definition for singly-linked list.

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

class

solution

:def

deletenode

(self, head: listnode, val:

int)

-> listnode:

dummy = listnode(0)

dummy.

next

= head

p = dummy

while p.

next

.val != val:

p = p.

next

p.next

= p.

next

.next

return dummy.

next

LeetCode 面試題18 刪除鍊錶的節點

給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。返回刪除後的鍊錶的頭節點。注意 此題對比原題有改動 示例 1 輸入 head 4,5,1,9 val 5 輸出 4,1,9 解釋 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 4 1 9.示例 2 輸入...

面試題18 刪除鍊錶的節點

給定單向鍊錶的頭指標和乙個要刪除的節點指標,定義乙個函式刪除該節點。思路 使用o 1 的方法來解決,將要刪除的的節點用下乙個節點來覆蓋就相當於是刪除了原節點。但有兩種特殊情況需要考慮,但鍊錶只有頭節點,即鍊錶只有乙個節點。二刪除的節點是尾節點,只用從頭for一遍 class listnode pub...

面試題18 刪除鍊錶的結點

題目1 在o 1 的時間內刪除鍊錶結點 給定單項鍊表的頭指標和乙個結點指標,定義乙個函式在o 1 的時間內刪除該結點。分析 要在o 1 的時間內刪除結點,按照常規的找到刪除結點的上乙個結點,然後刪除該結點的思路肯定行不通。但是我們可以將待刪除的結點的下乙個結點的值賦給待刪除結點,然後刪除下乙個結點,...