跳到主要内容

2023-9-17

9-17

链表

题号237. 删除链表中的节点

题目 有一个单链表的 head,我们想删除它其中的一个节点 node

给你一个需要删除的节点 node 。你将 无法访问 第一个节点 head

链表的所有值都是 唯一的,并且保证给定的节点 node 不是链表中的最后一个节点。

思路解析 一般来说实现链表的删除方法是,获取pre节点,然后将pre节点指向next节点即可

但是这里是单向链表,无法获取到pre,所以可以将要删除节点的next复制到node,再将node指向next.next即可

/**  
* Definition for singly-linked list.
* class ListNode {
* val: number
* next: ListNode | null
* constructor(val?: number, next?: ListNode | null) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
* }
*/

/**
Do not return anything, modify it in-place instead.
*/
function deleteNode(node: ListNode | null): void {
node.val = node.next.val
node.next = node.next.next
};