LeetCode——203. 移除链表元素

651 阅读1分钟

删除链表中等于给定值 val 的所有节点。

示例:

输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5

解题思路

  • 设置哨兵节点

代码实现

/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} head
 * @param {number} val
 * @return {ListNode}
 */
var removeElements = function(head, val) {
    let node = new ListNode(0)
    node.next = head 
    let prev = node
    let cur = head 
    while(cur){
        if(cur.val == val){
            prev.next = cur.next
            cur = cur.next
        }else{
            cur = cur.next
            prev = prev.next
        }
    }
    return node.next 
};

性能

时间复杂度:O(n)

空间复杂度:O(1)