Day1 刪除鍊錶的節點 鍊錶

2021-10-14 09:43:40 字數 987 閱讀 1874

題目:

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

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

思路:

刪除節點a==讓節點a的上乙個節點 指向節點a的下乙個節點

考慮到要刪除的節點可能是頭節點,我們新建乙個listnode節點beforehead,beforehead.next指向頭節點head,以防找不到頭節點。

**:

# 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:

p=beforehead=listnode(0)

#新建結點beforehead,p是遍歷指標

beforehead.

next

=head

while p:

if p.

next

.val==val:

#p.next結點就是要刪除的結點

p.next

=p.next

.next

#讓p的下乙個指標,跳過p.next,直接指向p.next.next,實現刪除結點的效果

return beforehead.

next

#返回頭結點

else

:#如果當前結點非 要刪除結點,繼續遍歷

p=p.

next

鍊錶 刪除鍊錶的節點

劍指offer的乙個題,題目是要求在最少的時間內刪除鍊錶的節點。問題分析 對於鍊錶的刪除,按照劍指offer的一貫思路就是展開討論 1 空鍊錶咋辦 待刪除的節點是空節點咋辦 2 要刪除的節點在鍊錶中的位置有三種情況 1 鍊錶只有乙個節點,待刪除節點是表頭又是尾節點 2 鍊錶有多個節點,待刪除的節點是...

Day1 鍊錶中倒數第k個節點 鍊錶

題目 輸入乙個鍊錶,輸出該鍊錶中倒數第k個節點。為了符合大多數人的習慣,本題從1開始計數,即鍊錶的尾節點是倒數第1個節點。例如,乙個鍊錶有6個節點,從頭節點開始,它們的值依次是1 2 3 4 5 6。這個鍊錶的倒數第3個節點是值為4的節點。思路 建立兩個指標p1,p2。初始位置均在頭節點處。p1先走...

刪除鍊錶的節點 鍊錶操作

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