1. 程式人生 > 其它 >5. LeetCode刷題—連結串列元素移除

5. LeetCode刷題—連結串列元素移除

技術標籤:Java面試複習準備leetcode連結串列

5. LeetCode刷題—連結串列元素移除

1. 連結串列篇-移除連結串列元素

編號203:移除連結串列元素

難度:簡單

LeetCode203題直達

刪除連結串列中等於給定值 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; } }