劍指offer18 鍊錶問題

2021-10-24 14:38:16 字數 598 閱讀 6842

題目:

思路一:函式引數是頭之指標和值,遍歷鍊錶,如果滿足頭指標指向節點的下乙個節點的值和需要刪掉的值相等,那麼就需要頭指標指向的節點的next域設定為要刪掉的下乙個節點的值。同時返回頭結點的下乙個結點的位址。注意:這種情況不包括頭節點為空和頭節點的值就是要刪掉的值

if (!head) return head;

if (head->val == val) return head->next;

listnode*phead = head;

while (phead->next)

phead = phead->next;

}return head;思路二;遞迴法

if (!head) return head;

// 如果head不為空,同時head的值又等於val,返回它的下乙個節點

if (head->val == val) return head->next;

// 如果head不為空,同時head的值也不等於val,說明head不能刪除,我們遞迴地去判斷下乙個節點的情況

head->next = deletenode(head->next, val);

return head;

劍指offer18 刪除鍊錶節點

1.考慮輸入空鍊錶和乙個節點鍊錶 2.如果頭節點不重複,直接遞迴查詢重複 3.雙指標,進行判斷兩個節點是不是相等 coding utf 8 class listnode def init self,x self.val x self.next none class solution def dele...

劍指offer 18 刪除鍊錶的結點

typedef int datatype typedef struct listnode listnode 建立結點 static listnode createnode datatype data 鍊錶初始化 void listinit listnode ppfirst 鍊錶銷毀 void lis...

劍指offer 18 刪除鍊錶的節點

描述 給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。返回刪除後的鍊錶的頭節點。示例 輸入 head 4,5,1,9 val 5 輸出 4,1,9 解釋 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 4 1 9.常規思路 定義乙個暫時變數用來刪除節點...