AcWing 28. 28. 在O(1)时间删除链表结点
原题链接
简单
作者:
梦想黑洞
,
2020-10-23 09:00:42
,
所有人可见
,
阅读 416
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
// 只写出这个方法即可,不用写输入输出。
// 常规方法:通过前驱结点的next指针来删除当前节点,但是题目中没给出。(不选)
// 取巧点:将“删除当前节点” 转换成 “删除当前节点的next结点”,
// 这样就不会用到当前节点的前驱节点的next指针,而会用到当前节点的next指针。
public void deleteNode(ListNode node) {
// 将当前节点的next结点的值赋给当前节点,这样“删除当前节点的next结点”就等效于“删除当前节点”。
node.val=node.next.val;
// 删除当前节点的next结点。
node.next=node.next.next;
}
}