力扣-删除链表的节点

122 阅读1分钟

解题思路

创建一个虚拟头节点,解决删除头部指针的问题 虚拟头节点的next指向head 重新创建一份创建出来的链表进行遍历, 遇到next的值等于被删除的值时,指针指向next.next

var deleteNode = function(head, val) {
    // 创建虚拟头
    const newHead  = new ListNode()
    // 虚拟头的next指向原来的head
    newHead.next = head
    // 重新定义一份
    let node = newHead
    while (node && node.next) {
        // 值相等的情况指向next.next
        if (node.next.val === val) {
            node.next = node.next.next
        }
        node = node.next;
    }
    return newHead.next
};