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 的第二個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 ...