5. LeetCode刷題—連結串列元素移除
阿新 • • 發佈:2021-01-31
5. LeetCode刷題—連結串列元素移除
1. 連結串列篇-移除連結串列元素
編號203:移除連結串列元素
難度:簡單
刪除連結串列中等於給定值 val 的所有節點。
示例:
輸入: 1->2->6->3->4->5->6, val = 6 輸出: 1->2->3->4->5
思路
核心:設定一個虛擬頭結點在進行移除節點操作,這樣按照正常的連結串列進行操作
程式碼實現如下:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode removeElements(ListNode head, int val) {
ListNode dumpHead = new ListNode(0);
dumpHead.next = head; //設定一個虛擬頭結點,方便後面操作
ListNode curr = dumpHead;
while(curr.next != null){
if(curr.next.val == val){
curr.next = curr.next.next; //直接指向下一節點,不需要處理刪除的節點,JVM會幫我們處理
}else{
curr = curr.next;
}
}
return dumpHead.next;
}
}