LeetCode 23 Merge k Sorted Lists
2018-03-14 08:29
375 查看
LeetCode 23 Merge k Sorted Lists
Description
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.解题思路
可以把第21题两路归并的代码拿过来用。代码
class Solution { public: ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) { if (l1 == NULL) return l2; if (l2 == NULL) return l1; ListNode *ans = new ListNode(0); ListNode *ret = ans; if (l1->val < l2->val) { ans->val = l1->val; l1 = l1->next; } else { ans->val = l2->val; l2 = l2->next; } while (l1 != NULL || l2 != NULL) { if (l2 == NULL || l1 && l2 && l1->val < l2->val) { ans->next = new ListNode(l1->val); l1 = l1->next; } else { ans->next = new ListNode(l2->val); l2 = l2->next; } ans = ans->next; } return ret; } ListNode *merge(vector<ListNode *> &lists, int start, int end) { int size = end - start; if (size == 2) { return mergeTwoLists(lists[start], lists[start + 1]); } else if (size == 1) { return lists[start]; } else { int mid = (start + end) / 2; return mergeTwoLists(merge(lists, start, mid), merge(lists, mid, end)); } } ListNode *mergeKLists(vector<ListNode *> &lists) { return merge(lists, 0, (int) lists.size()); } };
相关文章推荐
- [Leetcode 23, Hard] Merge k Sorted Lists
- 【LeetCode】23. Merge k Sorted Lists
- [leetcode 23]Merge k Sorted Lists
- [leetcode] 23. Merge k Sorted Lists 解题报告
- Leetcode23-Merge k Sorted Lists
- [leetcode 23] Merge k Sorted Lists
- LeetCode23 - merge k sorted lists
- LeetCode 23. Merge k Sorted Lists
- 【LeetCode】23. Merge k Sorted Lists 基于Java的解法
- LeetCode 23:Merge k Sorted Lists 解题与思考
- [LeetCode] 23 - Merge k Sorted Lists
- [Leetcode] 23. Merge k Sorted Lists
- LeetCode之23---Merge k Sorted Lists
- [LeetCode]23. Merge k Sorted Lists
- leetcode_23_Merge k Sorted Lists
- LeetCode 23 Merge k Sorted Lists
- LeetCode - 23. Merge k Sorted Lists
- LeetCode(23)Merge k Sorted Lists
- leetcode[23]Merge k Sorted Lists
- leetcode:23. Merge k Sorted Lists