logo头像

arthas.com.cn

Delete Node in a Linked List

该文章被围观

本文于494天之前发表,文中内容可能已经过时。

leetcode第237号题Delete Node in a Linked List,从链表中删除一个节点。刚看到这个题目还以为是题目出错了,因为要删除一个一个节点,至少题设要告诉链表的头结点和需要删除的节点。查阅之后才明白并不是题目出错,而是自己思路理解有误。在没有告知头结点的情况下,只告诉要删除的节点,也是可以删除的。原理就是用把当前传入的节点(即需要删除的节点)用其下一个节点覆盖掉。

因为题目中已告知:

  • 该链表至少两个节点
  • 所有节点的值均唯一
  • 给出的节点不会是最后的尾节点并且一定是有效节点
  • 不要返回任何值

题解代码:

1
2
3
4
public void deleteNode(ListNode node) {
node.val = node.next.val;
node.next = node.next.next;
}
上一篇