給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。
返回刪除後的鍊錶的頭節點。
刪除值為 val 的節點可分為兩步:定位節點、修改引用。
定位節點: 遍歷鍊錶,直到 head.val == val 時跳出,即可定位目標節點。
修改引用: 設節點 cur 的前驅節點為 pre ,後繼節點為 cur.next ;則執行pre.next = cur.next
,即可實現刪除 cur 節點。
參考:link
特例處理: 當應刪除頭節點 head 時head.val==val
,直接返回 head.next 即可。
初始化: pre = head , cur = head.next 。
跳出後,如果cur非空(if cur
)說明是因為cu.val==val跳出的,則刪除節點: 若 cur 指向某節點,則執行pre.next = cur.next。(若 cur 指向null ,代表鍊錶中不包含值為 val 的節點。)
返回值: 返回鍊錶頭部節點 head 即可。
------2021-01-08-記住雙指標!以及刪除的節點的方法—
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...