一道链表转置合并的面试题,至今无满意解,牛人请助

v_JULY_v
博客专家认证
2010-11-22 11:06:08
讨论一个问题:

A为递增有序单链表(长度为n),B为递减有序单链表(长度为m),利用原表存储空间,
将A、B合并成一个递增有序的单链表,要求时间复杂度为O(n+m) 。

---------------
Ps:
时间复杂度:最简单地方法是B转置再与A合并,但这样是n+2m。
空间复杂度:在原表结构上进行,即不能重新生成一个新的链表。


如上,请各抒己见。
...全文
265 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
v_JULY_v 2010-11-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 matrixcl 的回复:]
其实n+2m 就是 O(m+n)
一个例子,需要遍历链表两次的算法是2n吧,描述它的时间复杂度O(n)
[/Quote]

如果,是这样的话,那么题目已经解决了。
matrixcl 2010-11-22
  • 打赏
  • 举报
回复
其实n+2m 就是 O(m+n)
一个例子,需要遍历链表两次的算法是2n吧,描述它的时间复杂度O(n)
gules 2010-11-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 v_july_v 的回复:]
引用 1 楼 gules 的回复:
不需要转置,直接合并(merge)不行吗?


题目要求:
将A、B合并成一个递增有序的单链表。
[/Quote]

哦,想错了,合并排序中的merge操作前提是二个有序表。
v_JULY_v 2010-11-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gules 的回复:]
不需要转置,直接合并(merge)不行吗?
[/Quote]

题目要求:
将A、B合并成一个递增有序的单链表。
gules 2010-11-22
  • 打赏
  • 举报
回复
不需要转置,直接合并(merge)不行吗?

65,184

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧