Q18刪除鍊錶的節點

2021-10-04 20:21:17 字數 1061 閱讀 2035

在o(1

)o(1)

o(1)

時間內刪除鍊錶的節點

分三種情況:

刪除的節點不是尾結點,複製下乙個節點的值到該節點,然後刪除下乙個節點

刪除的節點是尾結點

刪除的節點與頭結點相同,那麼,要設定頭結點為null

不是頭結點,刪除尾結點,順序查詢,找到倒數第二個,然後,刪除最後乙個。

2.2複雜度為o(n

)o(n)

o(n)

,其餘為o(1

)o(1)

o(1)

,所以整體還是o(1

)o(1)

o(1)

刪除鍊錶所有重複的節點

在頭結點前增加乙個節點0,這樣能保證節點0一直在開頭,返回時,返回節點0的下乙個就好了

pre, cur 兩個指標分別指向前乙個和當前,當前如果需要刪除,則while不斷刪除。

/*

struct listnode

};*/

class

solution

prenode-

>next = curnode;

}else

}return prehead.next;}}

;

/*

struct listnode

};*/

class

solution

listnode head =

newlistnode(0

);head.next = phead;

listnode pre = head;

listnode last = head.next;

while

(last!=null)

pre.next = last.next;

last = last.next;

}else

}return head.next;}}

;

18 刪除鍊錶節點

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

18 刪除鍊錶的節點

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 1.首先新增乙個頭節點,以方便碰到第乙個,第二個節點就相同的情況 2.設定 pre last 指標,pre指標指向當前確定不重複的那個節點,而l...

18 刪除鍊錶的節點

class node object 節點類 def init self,data self.num data self.next none class deletenode object 實現刪除指定節點功能 defdelete node self,head,delnode if head none...