[LeetCode-0237题-删除链表中的节点] | 刷题打卡

95 阅读1分钟

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

一、题目描述

请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。

现有一个链表 -- head = [4,5,1,9],它可以表示为:

image.png

二、思路分析

比如我们要删除节点1, 我们可以把节点9赋值到当前节点,就变成4->5->9->9
再删除节点9,就变相完成了删除节点1

三、解题代码

/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} node
 * @return {void} Do not return anything, modify node in-place instead.
 */
var deleteNode = function(node) {
    node.val = node.next.val // 将当前节点的值改为下个节点的值
    node.next = node.next.next // 删除当前节点的下个节点
};
 

四、总结

  • 链表中是无法获取上个节点的,链表的关系是通过next指针,可以获取后面的节点。
  • 每天一练,持续学习