237. 删除链表中的节点(来自于力扣中国)
请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 。
题目数据保证需要删除的节点 不是末尾节点 。
解题思路,狸猫换太子,因为题目保证删除的不是尾节点,所以我们只需要把自己变成自己的下一个节点,然后把下一个节点置为null即可。
TS代码如下
/**
* 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(root: ListNode | null): void {
let next = root.next;
root.val = next.val;
root.next = next.next;
next = null;
};