LeetCode——删除链表的节点(JS实现) |刷题打卡

简介: LeetCode——删除链表的节点(JS实现) |刷题打卡

前言

掘金团队号上线,助你 Offer 临门! 点击 查看详情

题目描述

image.png

解题思路

  • 参数的head指的是链表的头指针。
  • val指的是目标number
  • 首先判断要删除的是不是第一个头节点,如果是头节点,直接让头指针指向下一个节点,然后返回。
  • 如果不是头节点,首先使用临时指针记录这个头指针的位置,让临时指针往后遍历,头指针不要移动了。
  • 使用while循环进行遍历,当临时指针的next节点的值等于要删除的节点,那么让临时指针的next指向临时指针的next的next。
  • 因为head指向的是引用型变量,临时指针修改也会影响到head的,所以最后返回head即是我们要返回的头指针。

解题代码

var deleteNode = function (head, val) {
    // 这里的head指的不是链表,而是链表的头指针
    // 如果删除的是头节点的话,直接返回头节点的下一个节点
    if(head.val === val) {
        return head.next;
    };
    // 如果函数走到这里说明删除的不是头节点
    // 用临时变量记录头指针
    let node = head;
    while(node.next.val !== val) {
        node = node.next;
    }
    node.next = node.next.next;
    return head;
};

总结

  • 本题属于链表的考题。
  • 本题核心思路在于复制目标节点的值,然后指针跳过该节点。
相关文章
|
3天前
|
存储 Python
链表中插入节点
链表中插入节点
|
3天前
|
存储 Python
删除链表节点详解
删除链表节点详解
|
3天前
|
存储 Python
链表中删除节点
链表中删除节点
|
4天前
|
存储 C语言
C语言中处理动态数据类型链表节点冲突的技术探讨
C语言中处理动态数据类型链表节点冲突的技术探讨
12 0
|
5天前
题目----力扣--回文链表
题目----力扣--回文链表
11 0
|
5天前
题目----力扣--合并两个有序链表
题目----力扣--合并两个有序链表
8 0
|
5天前
题目----力扣--反转链表
题目----力扣--反转链表
13 0
|
5天前
题目----力扣--链表的中间结点
题目----力扣--链表的中间结点
6 0
|
5天前
题目----力扣--移除链表元素
题目----力扣--移除链表元素
12 1
|
6天前
|
存储
【LeetCode】剑指 Offer 54. 二叉搜索树的第k大节点
【LeetCode】剑指 Offer 54. 二叉搜索树的第k大节点
15 1