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;
};

总结

  • 本题属于链表的考题。
  • 本题核心思路在于复制目标节点的值,然后指针跳过该节点。
相关文章
【力扣】-- 移除链表元素
【力扣】-- 移除链表元素
158 1
Leetcode第21题(合并两个有序链表)
这篇文章介绍了如何使用非递归和递归方法解决LeetCode第21题,即合并两个有序链表的问题。
189 0
Leetcode第21题(合并两个有序链表)
|
8月前
|
算法 Go
【LeetCode 热题100】23:合并 K 个升序链表(详细解析)(Go语言版)
本文详细解析了 LeetCode 热题 23——合并 K 个升序链表的两种解法:优先队列(最小堆)和分治合并。题目要求将多个已排序链表合并为一个升序链表。最小堆方法通过维护节点优先级快速选择最小值,;分治合并则采用归并思想两两合并链表。文章提供了 Go 语言实现代码,并对比分析两种方法的适用场景,帮助读者深入理解链表操作与算法设计。
296 10
|
机器学习/深度学习 人工智能 自然语言处理
280页PDF,全方位评估OpenAI o1,Leetcode刷题准确率竟这么高
【10月更文挑战第24天】近年来,OpenAI的o1模型在大型语言模型(LLMs)中脱颖而出,展现出卓越的推理能力和知识整合能力。基于Transformer架构,o1模型采用了链式思维和强化学习等先进技术,显著提升了其在编程竞赛、医学影像报告生成、数学问题解决、自然语言推理和芯片设计等领域的表现。本文将全面评估o1模型的性能及其对AI研究和应用的潜在影响。
346 1
LeetCode第二十四题(两两交换链表中的节点)
这篇文章介绍了LeetCode第24题的解法,即如何通过使用三个指针(preNode, curNode, curNextNode)来两两交换链表中的节点,并提供了详细的代码实现。
150 0
LeetCode第二十四题(两两交换链表中的节点)
Leetcode第十九题(删除链表的倒数第N个节点)
LeetCode第19题要求删除链表的倒数第N个节点,可以通过快慢指针法在一次遍历中实现。
190 0
Leetcode第十九题(删除链表的倒数第N个节点)
【LeetCode 46】450.删除二叉搜索树的节点
【LeetCode 46】450.删除二叉搜索树的节点
159 0
|
索引
力扣(LeetCode)数据结构练习题(3)------链表
力扣(LeetCode)数据结构练习题(3)------链表
268 0
【LeetCode 10】142. 环形链表 II
【LeetCode 10】142. 环形链表 II
109 0
【LeetCode 09】19 删除链表的倒数第 N 个结点
【LeetCode 09】19 删除链表的倒数第 N 个结点
191 0