You need to enable JavaScript to run this app. 链表p到q位置子链表反转实现及连接逻辑错误排查
优惠活动
大模型
产品
解决方案
定价
更多

链表p到q位置子链表反转实现及连接逻辑错误排查

链表指定区间反转问题解答

错误原因

你注释掉的旧连接逻辑的核心问题是仅修改了局部变量的指向,没有改动链表节点的next属性,没有真正修改链表的连接关系:

  • 当你遍历first_list到前半段末尾后,执行first_list = sub_list,只是修改了first_list这个局部变量的指向,前半段尾节点的next属性完全没有被更新,所以前半段和反转子链表没有实际连接上。
  • 后续执行sub_list = last_list同理,只是修改了sub_list这个局部变量的指向,反转后子链表的尾节点的next属性没有被设置为后半段链表的头节点,因此子链表和后半段也没有连上。最终就会出现链表只返回前两个节点的问题。

现有代码说明

你当前未被注释的连接逻辑是正确的,运行后会输出预期结果:

Nodes of original LinkedList are: 1 2 3 4 5 
Nodes of reversed LinkedList are: 1 4 3 2 5 

如果你的运行结果不对,检查是否误执行了注释内的错误逻辑。

逻辑优化建议

如果要沿用你最初的思路实现连接,只要把局部变量赋值改为修改节点的next属性即可,和你当前生效的代码逻辑一致:

  • 前半段尾节点previous的next指向反转后的子链表头
  • 原p位置节点(也就是反转后的子链表尾节点)的next指向后半段头节点end

内容的提问来源于stack exchange,提问作者Michael Torres

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 15:09:01