Leetcode 鍊錶 1 刪除節點

2021-09-14 00:40:48 字數 809 閱讀 6160

1.刪除鍊錶的結點

編寫乙個函式,在給定單鏈表乙個結點(非尾結點)的情況下,刪除該結點。假設該鍊錶為1 -> 2 -> 3 -> 4 並且給定你鍊錶中第三個值為3的節點,在呼叫你的函式後,該鍊錶應變為1 -> 2 -> 4。
分析:

1.待刪除的節點不是尾節點

2.可以不借助待刪除節點的父節點,可以直接操作待刪除的節點

void deletenode(listnode* node)
2.刪除鍊錶的倒數第n個節點

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點並返回頭結點。給的 n 始終是有效的。嘗試一次遍歷實現。
給定乙個鍊錶: 1->2->3->4->5, 並且 n = 2.

當刪除了倒數第二個節點後鍊錶變成了 1->2->3->5.

分析:

1.n永遠有效可以不考慮

2.待刪除節點可以是尾巴節點,則需要借助父節點,因為待刪除的節點不可以直接為null

3.當被刪節點為頭節點時,需要借助第三方節點(頭結點的父節點)

listnode* removenthfromend(listnode* head, int n) 

listnode* tmp=front->next;

front->next=tmp->next;

free(tmp);

return node->next;

}

Leetcode 刪除鍊錶的節點

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

LeetCode 刪除鍊錶中的節點

請編寫乙個函式,使其可以刪除某個鍊錶中給定的 非末尾 節點,你將只被給定要求被刪除的節點。現有乙個鍊錶 head 4,5,1,9 它可以表示為 4 5 1 9示例 1 輸入 head 4,5,1,9 node 5輸出 4,1,9 解釋 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該...

刷leetcode之刪除鍊錶節點

請編寫乙個函式,使其可以刪除某個鍊錶中給定的 非末尾 節點,你將只被給定要求被刪除的節點。現有乙個鍊錶 head 4,5,1,9 它可以表示為 示例 1 輸入 head 4,5,1,9 node 5 輸出 4,1,9 解釋 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 ...