Skip to content

移除链表元素

LeetCode-203

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点

js
var removeElements = function(head, val) {
  // 虚拟头节点,next指向head
  let dummyHead = new ListNode()
  dummyHead.next = head
  // 定义一个前置指针(dummyHead用于return的时候返回头节点)
  let prev = dummyHead
  while(head) {
    // 如果val相等,prev指针指向当前直接节点的下一个节点
    if(head.val === val) {
      prev.next = head.next
    }else {
    // 否则的话往前走一个节点
      prev = prev.next
    }
    // head每次循环都要往前走
    head = head.next
  }
  return dummyHead.next
}