Bug集合: 合并无序列表遍历的时候最末尾的需要置空

  • 注意堆排序是n(logn),是按照每次取出一个节点,然后重构就是log(n)
  • 但是构造堆并不是nlogn,是自下而上构造的,那么最底层2^h*1,只需要比较一次,2^0*h,第一个需要比较h次
  • 等差乘2消除 2S-S = z^(h+1)-h, h --logn, 所以最后就是O(N)

因此堆放置ListNode用于排序-先是O(n)-随后N次调整取出最小值-每次logN

或者直接使用List<ListNode>排序,使用lambda即可

但是程序总是出错-后来发现是因为比如curr遍历到最后取出最大值

但是2->5->6->1

curr指向6之后结束,但是6之后原本还指着1的

所以必须curr.next = null !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

#你觉得今年春招回暖了吗#
全部评论
我就是少了这一步“curr.next = null !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!”
1 回复 分享
发布于 2023-03-14 13:42 浙江
感谢大佬的解释,之前我就说怎么老是有问题
1 回复 分享
发布于 2023-03-14 13:18 山东

相关推荐

每晚夜里独自颤抖:这个在牛客不是老熟人了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务