Leetcode 重排链表 递归

https://leetcode.com/problems/reorder-list/solutions/45113/Share-a-consise-recursive-solution-in-C++/

https://leetcode.cn/problems/reorder-list/solutions/32910/xiang-xi-tong-su-de-si-lu-fen-xi-duo-jie-fa-by-34/

列表的核心就是随机访问,无法得到任意位置的节点

1->2->3->...->n-2->n-1->n->#

1->n->2->n-1->3->...->(odd: (n+1)/2,even: n/2->n/2+1)->#

比如

  • 1->2->3->4->5->6->#
  • 1->6->f(2->3->4->5->#)

注意不是 1->f(2->3->4->5->6->#)

  • 1->6->2->5->f(3->4->#)
  • 1->6->2->5->3->4>#

因此这里存在子结构

但是递归基怎么写呢

  • 1->6->f(2->3->4->5->#)
  • 1->6->f(2->3->4->5->#) = 1->g(1->next) = 1->g(6->2->5->3->4>#)

我们只有一个head,比如说1

f(1) = 1->g(1->next) = 1->g(2) = 1->6->f(2)

f(head) = head->g(head->next)
g(head) = tail(head)->f(head->next)
f(head) = head->tail(head->next)->f(head->next->next)

问题在于此!tail无法实现

posted @   ZXYFrank  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2022-01-05 多目标跟踪综述 2021
点击右上角即可分享
微信分享提示
主题色彩