请实现一个函数,将链表原地重排为:第一个节点、最后一个节点、第二个节点、倒数第二个节点……的顺序。例如 {1,2,3,4} 变为 {1,4,2,3},{1,2,3,4,5} 变为 {1,5,2,4,3}。要求不能只修改节点值,必须实际交换节点。
考察说明
考察链表分半、反转后半部分及交替合并的算法实现能力
回答思路
- 使用快慢指针找到链表中点
- 反转后半部分链表
- 依次交替合并前半部分与反转后的后半部分
- 正确处理奇偶长度链表
- 保持节点交换而非只改值
- 分析时间复杂度和空间复杂度
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。