[Golang][Leetcode][linkedList]刷題系列-203-刪除元素

Contents
203. Remove Linked List Elements
Level : Easy
原題連結 : Click
題目 :
Given the head of a linked list and an integer val, remove all the nodes of the linked list that has Node.val == val, and return the new head.
Example :
Note
Input: head = [1,2,6,3,4,5,6], val = 6
Output: [1,2,3,4,5]
解題思路 :
- 這題就是較為基礎的Linked-list刪除操作
- 遍歷,Val等於題目的 given val時,將該node的前一個的Next重新指向該node的下一個node
- 也就是直接跳過該node的意思,Linked-list就成功刪除掉該node
- 只有一個要注意的點: 開頭的head node並沒有前一個node,所以我選擇在head前面放一個dummy node的解法
解法 :
- 首先我們先宣告一個dummy node,將其Next指向head,就代表他成為該linked-list的"假"頭
- 開始遍歷,這邊唯一要注意的一個點就是要分成兩個狀況,
- 狀況一 : 找到val,則下一輪不往下一個node走(原因是你會檢查並刪掉你的下一個node然後連接上你的下下個node,也就是你下輪要檢查的node在這輪操作已經跟你連上了,故不用移動)
- 狀況二 : 沒有找到val,則下一輪繼續往下一個node走
- 遍歷結束後,回傳dummy node的Next(他才是真正的head)
以下是我自己的解法 - O(n)
Runtime: 0 ms, faster than 100.00% of Go online submissions for Spiral Matrix.
|
|
最後祝福努力認真的各位 “All your dream of are hidden in your daily life” 我們峰頂見!!!