解题思路
创建一个虚拟头节点,解决删除头部指针的问题 虚拟头节点的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
};