LeetCode 237. 删除链表中的节点
题目描述
思路分析
解法一:覆盖后继节点(推荐)
核心思路:
- 题目保证不是尾节点,可直接把后继节点值复制到当前节点。
- 再让当前节点跳过后继节点。
- 实现 O(1) 删除。
复杂度分析:
- 时间复杂度:O(1),常数操作。
- 空间复杂度:O(1),仅使用常数额外空间。
class Solution {
public void deleteNode(ListNode node) {
// 将后继节点的值覆盖到当前节点
node.val = node.next.val;
node.next = node.next.next;
}
}
func deleteNode(node *ListNode) {
// 将后继节点的值覆盖到当前节点
node.Val = node.Next.Val
node.Next = node.Next.Next
}
相似题目
| 题目 | 难度 | 考察点 |
|---|---|---|
| 19. 删除链表的倒数第 N 个结点 | 中等 | 双指针 |
| 83. 删除排序链表中的重复元素 | 简单 | 链表 |
| 203. 移除链表元素 | 简单 | 链表 |
| 237. 删除链表中的节点 | 简单 | 链表 |
| 876. 链表的中间结点 | 简单 | 双指针 |
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议,转载请注明出处!

