203. Remove Linked List Elements

Leetcode

https://leetcode.com/problems/remove-linked-list-elements/

題目

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 1:

Input: head = [1,2,6,3,4,5,6], val = 6
Output: [1,2,3,4,5]

Example 2:

Input: head = [], val = 1
Output: []

Example 3:

Input: head = [7,7,7,7], val = 7
Output: []

解答

  • 方法一

var removeElements = function(head, val) {
    const dummy = new ListNode(-1);
    dummy.next = head;
    
    let lastNode = dummy;
    while(lastNode) {
        // 只要下一個等於 val,就一直把 lastNode 指到下下個 node
        while(lastNode.next?.val === val) {
           lastNode.next = lastNode.next?.next;
        }
        lastNode = lastNode.next;
    }
    return dummy.next;
};

Runtime: 88 ms, faster than 91.34% of JavaScript online submissions for Remove Linked List Elements.

Memory Usage: 43.4 MB, less than 63.33% of JavaScript online submissions for Remove Linked List Elements.

Last updated

Was this helpful?