「链表」leetcode 237.删除链表中的节点(简单)

187 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

一、了解题目

附上原题链接:237. 删除链表中的节点

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

示例:

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

img

输入:head = [4,5,1,9], node = 5
输出:[4,1,9]
解释:给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.

二、题解分析

(1)解题思路

  • 在实际操作中,并无法获取被删除结点的上一个结点;
  • 将被删除结点转移到下一个结点

(2)解题步骤

  • 将被删除结点的值改为下一个节点的值;
  • 删除下一个节点。

三、代码实现

依据上面的题解,我们将用 js 来实现这道题。具体实现代码如下:

/**
 * 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) {
    // 1.将被删除节点的值改为下一个节点的值
    node.val = node.next.val;
    // 2.删除下一个节点
    node.next = node.next.next;
};

以上就是关于删除链表中的节点的题解,不知道对小伙伴们是否有帮助呢?

我们下期见👋👋👋