请实现链表重排:将链表 L0->L1->L2->...->LN 重排为 L0->LN->L1->LN-1->L2->LN-2->...,并分析时间复杂度与空间复杂度,尽可能达到 O(1) 额外空间。
考察说明
考察链表操作、快慢指针找中点、反转链表、合并链表的综合编码能力与复杂度分析
回答思路
- 能准确描述重排的最终顺序
- 能使用快慢指针找到链表中间节点并拆分前后两半
- 能反转后半段链表
- 能交替合并两段链表形成新顺序
- 能准确分析时间 O(n) 和空间 O(1)(不计算递归栈)
- 对边界情况(空链表、单节点、双节点)有处理
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。