给定一个链表和一个值,返回一个新链表,使得所有小于该值的节点排在左边,所有大于或等于该值的节点排在右边,要求时间复杂度 O(n)、空间复杂度 O(1)。请手写代码实现。
考察说明
考察链表操作、原地分割算法的实现能力与复杂度意识
回答思路
- 能正确划分小于与大于等于目标值的节点,且保持相对顺序
- 使用哑结点或指针管理新链表头尾,避免空指针和循环引用
- 保证时间复杂度 O(n)、空间复杂度 O(1),不新建节点
- 正确处理边界情况:空链表、所有节点均小于/大于等于目标值
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。