【圖解連結串列類面試題】移除連結串列元素
目錄
題目描述
題目地址:https://leetcode-cn.com/problems/remove-linked-list-elements/
刪除連結串列中等於給定值 val 的所有節點。
示例:
輸入: 1->2->6->3->4->5->6, val = 6
輸出: 1->2->3->4->5
題解
這道題是要求我們刪除連結串列中指定的元素,也就是某些特定的節點。
如果已經遍歷到一個節點時,就無法刪除這個節點了,因為是單連結串列。
所以想要刪除某個節點,就必須找到這個節點的前一個節點,把前一個節點的指標改變,即指向下下一個就可以達到刪除的目的了。
動畫演示如下:
java實現
class Solution {
public ListNode removeElements(ListNode head, int val) {
ListNode p = new ListNode(-1);
p.next = head;
//因為要刪除的可能是連結串列的第一個元素,所以用一個h節點來做處理
//最後只要返回h的下一個節點即可
ListNode h = p;
//注意遍歷的條件是p.next不為空
while(p.next!=null) {
//如果p的下一個節點的值==val
//P就指向下下一個,這就刪掉了指定的節點
if(p.next.val==val) {
p.next = p.next.next;
//注意這裡的continue
//因為迴圈最後還有一個P=p.next,所以要跳過
continue;
}
//不用continue用else的方式也是可以的
p = p.next;
}
return h.next;
}
}
python實現
class Solution(object):
def removeElements(self, head, val):
"""
:type head: ListNode
:type val: int
:rtype: ListNode
"""
p = ListNode(-1)
# 因為要刪除的可能是連結串列的第一個元素,所以用一個h節點來做處理
# 最後只要返回h的下一個節點即可
p.next,h = head,p
# 注意遍歷的條件是p.next不為空
while p.next:
# 如果p的下一個節點的值==val
# P就指向下下一個,這就刪掉了指定的節點
if p.next.val==val:
p.next = p.next.next
# 注意這裡的continue
# 因為迴圈最後還有一個P=p.next,所以要跳過
continue
# 不用continue用else的方式也是可以的
p = p.next
return h.next
歡迎掃描關注公眾號 ,有更多圖解的演算法面試題等你哦~
相關文章
- 【圖解連結串列類面試題】環形連結串列圖解面試題
- leedcode-移除連結串列元素
- 203. 移除連結串列元素
- **203.移除連結串列元素****707.設計連結串列****206.反轉連結串列**
- 【程式碼隨想錄】二、連結串列:1、移除連結串列元素
- 【LeetCode-連結串列】面試題-反轉連結串列LeetCode面試題
- 連結串列專題——面試中常見的連結串列問題面試
- 力扣-203. 移除連結串列元素力扣
- 程式碼隨想錄第3天 | 連結串列 203.移除連結串列元素,707.設計連結串列,206.反轉連結串列
- 程式碼隨想錄:移除連結串列元素
- 2024/12/1 【連結串列】 LeetCode 面試題 02.07. 連結串列相交LeetCode面試題
- 隨想錄day3:203.移除連結串列元素|707.設計連結串列 |206.反轉連結串列
- Q16 LeetCode203 移除連結串列元素LeetCode
- 連結串列(LinkedList)解題總結
- 連結串列 - 單向連結串列
- 連結串列-迴圈連結串列
- 連結串列-雙向連結串列
- 搞懂單連結串列常見面試題面試題
- 單連結串列建立連結串列出現問題
- 環形連結串列_相交連結串列_多數元素(java語言)Java
- 【LeetCode連結串列#9】圖解:兩兩交換連結串列節點LeetCode圖解
- 連結串列4: 迴圈連結串列
- 連結串列-雙向通用連結串列
- 連結串列-單連結串列實現
- 程式碼隨想錄演算法訓練營第三天|203(移除連結串列元素),707(設計連結串列),206(反轉連結串列)演算法
- 連結串列專題
- 連結串列-雙向非通用連結串列
- 【LeetCode】->連結串列->通向連結串列自由之路LeetCode
- 連結串列入門與插入連結串列
- Leetcode_86_分割連結串列_連結串列LeetCode
- 資料結構連結串列筆試題資料結構筆試
- 程式碼隨想錄演算法訓練營day03|203.移除連結串列元素,707.設計連結串列,206.反轉連結串列演算法
- 面試題:連結串列為什麼使用內部類實現?面試題
- 資料結構與演算法——連結串列 Linked List(單連結串列、雙向連結串列、單向環形連結串列-Josephu 問題)資料結構演算法
- 演算法面試(一) 連結串列演算法面試
- 資料結構-單連結串列、雙連結串列資料結構
- 連結串列
- [演算法總結] 17 題搞定 BAT 面試——連結串列題演算法BAT面試