给定一个没有头节点的单链表,且链表中所有节点值互不相同。要求在只给出待删除节点指针的前提下删除该节点,并保证空间复杂度为 O(1)。请说明实现思路并写出核心代码。
考察说明
考察链表节点删除算法的理解、O(1)空间下的巧妙解法及边界条件处理
回答思路
- 明确题目限制:无头节点、只能访问给定节点,因此不能像常规删除那样修改前驱的next指针
- 提出使用后继节点值覆盖当前节点值,再删除后继节点的思路
- 说明对尾节点(无后继)时的处理策略
- 分析时间复杂度为O(1),空间复杂度为O(1),并指出潜在限制(如节点值不可覆盖或链表中存在其他引用时的差异)
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。