Skip to content

Latest commit

 

History

History
32 lines (25 loc) · 788 Bytes

18. 删除链表的节点.md

File metadata and controls

32 lines (25 loc) · 788 Bytes

题目链接:

剑指 Offer 18. 删除链表的节点

思路:

  • 定义虚拟节点,用指针遍历链表
  • 如果下一个值等于val,则删除下一个值
  • 使用ES6的?.运算符,判断p是否存在

代码:

JavaScript

const deleteNode = (head, val) => {
    // 定义虚拟节点
    const res = new ListNode(-1);
    // 虚拟节点连接到head
    res.next = head;
    // 定义p指针,最开始指向虚拟节点天头部
    let p = res;
    // 遍历链表
    while (p?.next) {
        // 如果下一个值等于val,则删除下一个值
        if (p.next.val === val) p.next = p.next.next;
        p = p.next;
    }
    return res.next;
};