leetcode第一刷_Merge k Sorted Lists
来源:互联网 发布:软件商业计划书模板 编辑:程序博客网 时间:2024/05/17 22:25
看到这道题,我吐了。做过两个merge的,就已经够恶心了,居然k个都要merge。。
写的时候我没考虑太多,从头到尾的merge,merge的结果指针放到后一个的位置上,这样输出最后一个指针就可以了。更好的方式应该是用类似归并的方法。一层一层的往上合并,回头把这个的代码写一下,发上来。
ListNode* merge(ListNode* a, ListNode *b){ if(a == NULL) return b; if(b == NULL){ return a; } if(a->val>b->val){ ListNode* tp = a; a = b; b = tp; } ListNode* head = a, *pre = a; a = a->next; head->next = NULL; while(a && b){ if(a->val<=b->val){ pre->next = a; pre = a; a = a->next; pre->next = NULL; }else{ pre->next = b; pre = b; b = b->next; pre->next = NULL; } } if(a){ pre->next = a; } if(b){ pre->next = b; } return head;} class Solution {public: ListNode *mergeKLists(vector<ListNode *> &lists) { if(lists.size() == 0) return NULL; if(lists.size() == 1) return lists[0]; int len = lists.size(); for(int i=1;i<len;i++){ lists[i] = merge(lists[i-1], lists[i]); } return lists[len-1]; }};
0 0
- leetcode第一刷_Merge k Sorted Lists
- leetcode第一刷_Merge Two Sorted Lists
- LeetCode 23_Merge k Sorted Lists
- 0023_Merge k Sorted Lists
- leetcode第一刷_Merge Sorted Array
- LeetCode 21_Merge Two Sorted Lists
- leetcode第一刷_Merge Intervals
- 0021_Merge Two Sorted Lists
- LeetCode: Merge k Sorted Lists
- LeetCode Merge k Sorted Lists
- LeetCode: Merge k Sorted Lists
- [Leetcode] Merge k Sorted Lists
- [Leetcode] Merge k Sorted Lists
- [Leetcode] Merge K sorted lists
- [LeetCode]Merge k Sorted Lists
- [LeetCode] Merge k Sorted Lists
- LeetCode-Merge k Sorted Lists
- LeetCode: Merge k Sorted Lists
- 【Yii】YII执行流程
- 《C和指针》——C语言补漏(基本用法篇)
- hdu 1531 King
- 字符串转数字atoi的重新编写及注意事项
- 使用JavaPns向APNs推送通知
- leetcode第一刷_Merge k Sorted Lists
- Plus One
- 【Yii】组件和事件行为管理
- hdu 1384 Intervals
- jFreeChart展示柱状图
- 通过ArcCatalog发布服务时出错
- 如何在.NET程序中引用KindEditor(HTML在线编辑器)
- 动画
- 【设计模式】总结篇 对比中找联系