删除链表中的节点
描述:
题解:
之前写过链表的节点删除,不过是传入index值。这道题与众不同的地方是传入的就是删除的节点,而且函数不能返回任何结果。所以一开始比较难以理解的就是参数中为什么没有head。
理解题意后,发现这道题想表述的是在只给定被删除节点的情况下,删除该节点。而且题目中强调了给定的节点为非末尾节点并且一定是链表中的一个有效节点。
那么有意思的地方就来了。我们只需要将当前被删除的节点变成它的下一个节点,就间接地实现了删除该节点的功能。
ES6
const deleteNode = (node) => {
node.val = node.next.val
node.next = node.next.next
};
时间复杂度:O(1)
空间复杂度:O(1)