掘金团队号上线,助你 Offer 临门! 点击 查看详情
一、题目描述
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。
现有一个链表 -- head = [4,5,1,9],它可以表示为:
二、思路分析
比如我们要删除节点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指针,可以获取后面的节点。
- 每天一练,持续学习