劍指offer 刪除鍊錶的節點

2022-07-12 09:48:08 字數 563 閱讀 3887

給定單向鍊錶的頭指標和乙個節點指標,定義乙個函式在o(1)時間內刪除該節點。

1

struct

listnode ;

1

void deletenode(listnode* &plisthead, listnode*ptobedeleted):

2if (!plistnode || !ptobedeleted) 56

if (ptobedeleted->next != nullptr) else

if (plisthead == ptobedeleted) else

23 pnode->next =nullptr;

24delete

ptobedeleted;

25 ptobedeleted =nullptr;26}

27

時間複雜度分析:對於n-1個非尾節點來說,都可以在o(1)時間內刪除節點。對於刪除尾節點,時間複雜度是o(n)。

因此平均時間複雜度為[(n - 1) * o(1) + o(n)] / n

劍指offer 刪除鍊錶的節點

給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。返回刪除後的鍊錶的頭節點。思路 單指標,找到需要刪除的節點的前乙個節點即可。definition for singly linked list.public class listnode class solution if head...

劍指Offer 刪除鍊錶的節點

劍指offer 刪除鍊錶的節點 題目要求 給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。返回刪除後的鍊錶的頭節點。解題思路 單鏈表刪除節點,直接將當前節點的指標指向下乙個節點的next即可 因為該題是查詢節點中的值是否等於給定值,並且找到之後無法向前找節點 在確認是否是要刪除的...

劍指Offer 鍊錶 刪除鍊錶的節點

給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點,返回刪除後的鍊錶的頭節點。解題思路 演算法流程 複雜度分析 實現 definition for singly linked list.class listnode def init self,x self.val x self.ne...