在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...