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)
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。
相關文章
- JZ76 刪除連結串列中重複的節點
- [CareerCup] 2.3 Delete Node in a Linked List 刪除連結串列的節點delete
- LeetCode每日一題:刪除連結串列中的節點(No.237)LeetCode每日一題
- **24. 兩兩交換連結串列中的節點****19.刪除連結串列的倒數第N個節點****面試題 02.07. 連結串列相交****142.環形連結串列II**面試題
- 刪除陣列中的元素(連結串列)陣列
- Day4(連結串列)|24. 兩兩交換連結串列中的節點 & 19.刪除連結串列的倒數第N個節點 & 面試題 02.07. 連結串列相交 &142.環形連結串列II面試題
- 0928面試小節:刪除有序連結串列中的重複元素面試
- Day 4 | 24. 兩兩交換連結串列中的節點 、 19.刪除連結串列的倒數第N個節點 、面試題 02.07. 連結串列相交 、142.環形連結串列II面試題
- 連結串列面試題(四)---查詢連結串列的中間節點面試題
- 雙向連結串列————查詢、刪除、插入結點
- 第四天:● 24. 兩兩交換連結串列中的節點 ● 19.刪除連結串列的倒數第N個節點 ● 面試題 02.07. 連結串列相交 ● 142.環形連結串列II面試題
- Leetcode No.19 刪除連結串列的倒數第N個節點LeetCode
- LeetCode- 19 刪除連結串列的倒數第N個節點LeetCode
- 連結串列面試題(六)---刪除單連結串列倒數第k個結點面試題
- 連結串列面試題(一)---刪除一個無頭單連結串列的非尾結點面試題
- 程式碼隨想錄第4天 | 24. 兩兩交換連結串列中的節點、19.刪除連結串列的倒數第N個節點、面試題 02.07. 連結串列相交、142.環形連結串列II面試題
- 程式碼隨想錄演算法訓練營第四天 | 連結串列 24.兩兩交換連結串列中的節點 19.刪除連結串列的倒數第N個節點 142.環形連結串列II演算法
- 19. 刪除連結串列的倒數第 N 個結點
- 單向迴圈連結串列——查詢、刪除、插入結點
- 從未排序的連結串列中刪除重複項排序
- 資料結構實驗之連結串列七:單連結串列中重複元素的刪除資料結構
- 程式碼隨想錄day4 | 24 兩兩交換連結串列節點 19 刪除倒數第n個節點 142 環形連結串列
- Java兩種方式實現連結串列的刪除,返回頭結點Java
- 演算法刪除單連結串列中重複的元素演算法
- 連結串列基礎2(超簡單)--單連結串列的插入和刪除
- 程式碼隨想錄演算法訓練營day04|24.兩兩交換連結串列中的節點,19.刪除連結串列的倒數第N個節點,面試題 02.07.連結串列相交,142.環形連結串列II演算法面試題
- Redis筆記 — 連結串列和連結串列節點的API函式(三)Redis筆記API函式
- Java連結串列指標確實好煩 - 交換連結串列中連續的兩個節點的位置Java指標
- 雙向連結串列的操作(插入和刪除)
- LeetCode 刷題日記 19. 刪除連結串列的倒數第N個節點LeetCode
- 04天【程式碼隨想錄演算法訓練營34期】 第二章 連結串列part02 (● 24. 兩兩交換連結串列中的節點 ● 19.刪除連結串列的倒數第N個節點 ● 面試題 02.07. 連結串列相交 ● 142.環形連結串列II )演算法面試題
- [連結串列]leetcode1019-連結串列中的下一個更大節點LeetCode
- 83. 刪除排序連結串列中的重複元素(JavaScript版)排序JavaScript
- 力扣-83. 刪除排序連結串列中的重複元素力扣排序
- leetcode 24 兩兩交換連結串列中的節點LeetCode
- K個節點翻轉連結串列
- 雙向連結串列 尾節點插入
- 單連結串列功能函式練習——按規定插入指定節點及刪除最小值節點(C語言)函式C語言