【圖解連結串列類面試題】移除連結串列元素
目錄
題目描述
題目地址: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
歡迎掃描關注公眾號 ,有更多圖解的演算法面試題等你哦~
相關文章
- 【圖解連結串列類面試題】環形連結串列圖解面試題
- 連結串列面試題(二)---連結串列逆序(連結串列反轉)面試題
- 【程式碼隨想錄】二、連結串列:1、移除連結串列元素
- leedcode-移除連結串列元素
- **203.移除連結串列元素****707.設計連結串列****206.反轉連結串列**
- 連結串列專題——面試中常見的連結串列問題面試
- 力扣-203. 移除連結串列元素力扣
- 【LeetCode-連結串列】面試題-反轉連結串列LeetCode面試題
- 連結串列面試題(七)---合併兩個有序連結串列面試題
- (連結串列)連結串列的排序問題排序
- 程式碼隨想錄第3天 | 連結串列 203.移除連結串列元素,707.設計連結串列,206.反轉連結串列
- 連結串列面試題(九)---判斷一個連結串列是否帶環面試題
- 連結串列面試題(四)---查詢連結串列的中間節點面試題
- 連結串列-雙向連結串列
- 連結串列-迴圈連結串列
- 隨想錄day3:203.移除連結串列元素|707.設計連結串列 |206.反轉連結串列
- 連結串列面試題(十一)---求帶環單連結串列 環的入口點面試題
- 環形連結串列_相交連結串列_多數元素(java語言)Java
- 連結串列面試題(六)---刪除單連結串列倒數第k個結點面試題
- 連結串列4: 迴圈連結串列
- 連結串列-單連結串列實現
- 連結串列面試題(十)---求帶環單連結串列的環的長度面試題
- 連結串列(LinkedList)解題總結
- 連結串列面試題(十三)---求兩個都不帶環的連結串列相交的結點面試題
- 【LeetCode連結串列#9】圖解:兩兩交換連結串列節點LeetCode圖解
- 連結串列入門與插入連結串列
- 搞懂單連結串列常見面試題面試題
- 連結串列面試題(八)---約瑟夫環面試題
- 連結串列
- 連結串列面試題(十二)---判斷兩個都不帶環的連結串列是否相交面試題
- 連結串列面試題(五)---尋找連結串列的倒數第k個結點O(N)面試題
- 連結串列面試題(一)---刪除一個無頭單連結串列的非尾結點面試題
- Q16 LeetCode203 移除連結串列元素LeetCode
- 資料結構與演算法——連結串列 Linked List(單連結串列、雙向連結串列、單向環形連結串列-Josephu 問題)資料結構演算法
- javascript中的連結串列結構—雙向連結串列JavaScript
- 程式碼隨想錄演算法訓練營第三天|203(移除連結串列元素),707(設計連結串列),206(反轉連結串列)演算法
- 【資料結構】連結串列(單連結串列實現+詳解+原碼)資料結構
- Leetcode_86_分割連結串列_連結串列LeetCode