--- title: "05-在O(1)时间删除链表结点" created: 2025-12-02 tags: - 项目 aliases: - 在O(1)时间删除链表结点 --- # 在O(1)时间删除链表结点 ## 题目 [在O(1)时间删除链表结点](https://www.acwing.com/problem/content/85/) ![[image-ec9d2633.png]] ## 思路分析 单链表不方便找前驱节点,所以我们不能按常规方法将该节点删除。 可以换一种思路,将下一个节点的值复制到当前节点,然后将下一个节点删除即可。 “借尸还魂” ## 代码实现 ```java /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public void deleteNode(ListNode node) { ListNode p=node.next; node.val=p.val; node.next=p.next; } } ``` ## 同类题型 ## 视频讲解 --- **项目分区导航**: [[04-反转链表|反转链表]] ⬅️ | 05-在O(1)时间删除链表结点 | ➡️ [[00-配置git环境与项目创建|配置git环境与项目创建]]