leetcode----刪除連結串列中的節點
請編寫一個函式,使其可以刪除某個連結串列中給定的(非末尾)節點。傳入函式的唯一引數為 要被刪除的節點 。
現有一個連結串列 -- head = [4,5,1,9],它可以表示為:
示例 1:
輸入:head = [4,5,1,9], node = 5
輸出:[4,1,9]
解釋:給定你連結串列中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該連結串列應變為 4 -> 1 -> 9.
示例 2:
輸入:head = [4,5,1,9], node = 1
輸出:[4,5,9]
解釋:給定你連結串列中值為 1 的第三個節點,那麼在呼叫了你的函式之後,該連結串列應變為 4 -> 5 -> 9.
提示:
連結串列至少包含兩個節點。
連結串列中所有節點的值都是唯一的。
給定的節點為非末尾節點並且一定是連結串列中的一個有效節點。
不要從你的函式中返回任何結果。
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/delete-node-in-a-linked-list
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
下面是看;一個大神Akari的思路
本題的題意是,存在一個我們不能直接去訪問連結串列head,以及給定的節點node
我們要在無法訪問head的情況下,把node節點刪除
在物件導向的語言中,我們已知node但無法訪問node的上一個節點,因此不能修改上一個節點的next屬性
官方題解把node節點的值用下一個節點的值去覆蓋掉,然後把重複值的node.next給刪除掉,達成了一種"狸貓換太子"的效果
public void deleteNode(ListNode node) {
node.val = node.next.val;
node.next = node.next.next;
}
但在c語言中,因為是指標和結構體來表示連結串列,因此node和之前節點的next指向了記憶體中的同一地址,所以只要對這個地址做修改,上一個節點的next也同時被修改了
class Solution {
public:
void deleteNode(ListNode* node) {
*node = *(node->next);
}
};
作者:akari-5
連結:https://leetcode-cn.com/problems/delete-node-in-a-linked-list/solution/chuan-tong-cyu-yan-lian-biao-yu-mian-xiang-dui-xia/
來源:力扣(LeetCode)
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。
相關文章
- 【連結串列問題】刪除單連結串列的中間節點
- 【連結串列問題】打卡3:刪除單連結串列的中間節點
- 牛客(刪除連結串列中重複節點)
- JZ76 刪除連結串列中重複的節點
- LeetCode每日一題:刪除連結串列中的節點(No.237)LeetCode每日一題
- 劍指offer-----刪除連結串列中的重複節點
- 【連結串列問題】打卡2:刪除單連結串列的第 K個節點
- 2024/11/27 【連結串列】LeetCode 24 兩兩交換連結串列中的節點 & LeetCode 19 刪除連結串列的倒數第N個節點LeetCode
- 0011 刪除連結串列的倒數第N個節點
- 13. O(1)時間刪除連結串列節點
- 刪除連結串列中等於給定值 val 的所有節點。
- JZ-056-刪除連結串列中重複的結點
- **24. 兩兩交換連結串列中的節點****19.刪除連結串列的倒數第N個節點****面試題 02.07. 連結串列相交****142.環形連結串列II**面試題
- LeetCode- 19 刪除連結串列的倒數第N個節點LeetCode
- 題19. 刪除連結串列的倒數第N個節點
- Leetcode No.19 刪除連結串列的倒數第N個節點LeetCode
- Day4(連結串列)|24. 兩兩交換連結串列中的節點 & 19.刪除連結串列的倒數第N個節點 & 面試題 02.07. 連結串列相交 &142.環形連結串列II面試題
- Day 4 | 24. 兩兩交換連結串列中的節點 、 19.刪除連結串列的倒數第N個節點 、面試題 02.07. 連結串列相交 、142.環形連結串列II面試題
- 2020-10-18 刪除連結串列的倒數第N個節點
- 0928面試小節:刪除有序連結串列中的重複元素面試
- 第四天:● 24. 兩兩交換連結串列中的節點 ● 19.刪除連結串列的倒數第N個節點 ● 面試題 02.07. 連結串列相交 ● 142.環形連結串列II面試題
- JZ-069-在 O(1) 時間內刪除連結串列節點
- 雙向連結串列————查詢、刪除、插入結點
- 6-8 單連結串列結點刪除 (20 分)
- 程式碼隨想錄第4天 | 24. 兩兩交換連結串列中的節點、19.刪除連結串列的倒數第N個節點、面試題 02.07. 連結串列相交、142.環形連結串列II面試題
- [連結串列]leetcode1019-連結串列中的下一個更大節點LeetCode
- 19. 刪除連結串列的倒數第 N 個結點
- 程式碼隨想錄演算法訓練營第四天 | 連結串列 24.兩兩交換連結串列中的節點 19.刪除連結串列的倒數第N個節點 142.環形連結串列II演算法
- 單向迴圈連結串列——查詢、刪除、插入結點
- LeetCode 刷題日記 19. 刪除連結串列的倒數第N個節點LeetCode
- 從未排序的連結串列中刪除重複項排序
- Java兩種方式實現連結串列的刪除,返回頭結點Java
- 資料結構實驗之連結串列七:單連結串列中重複元素的刪除資料結構
- 程式碼隨想錄演算法訓練營day04|24.兩兩交換連結串列中的節點,19.刪除連結串列的倒數第N個節點,面試題 02.07.連結串列相交,142.環形連結串列II演算法面試題
- 特定深度節點連結串列
- 程式碼隨想錄day4 | 24 兩兩交換連結串列節點 19 刪除倒數第n個節點 142 環形連結串列
- #LeetCode237. 刪除連結串列中的節點 #在所有 Java 提交中擊敗了 100.00% 的使用者 @FDDLCLeetCodeJava
- LeetCode19題 刪除連結串列的倒數第N個節點 (c++ 遞迴)LeetCodeC++遞迴