LeetCode OJ - Merge k Sorted Lists
2014-07-23 17:12
316 查看
Merge k sorted
linked lists and return it as one sorted list. Analyze and describe its complexity.
分析:对于多个已排序的序列容易想到归并排序。归并排序的最大优点在于,归并一次操作简单,归并次数少。 递归时间复杂度参考主定理
linked lists and return it as one sorted list. Analyze and describe its complexity.
分析:对于多个已排序的序列容易想到归并排序。归并排序的最大优点在于,归并一次操作简单,归并次数少。 递归时间复杂度参考主定理
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode *mergeKLists(vector<ListNode *> &lists) { int len = lists.size(); if(len == 0) return NULL; ListNode *head = mergeSort(lists, 0, len - 1); return head; } ListNode *mergeSort(vector<ListNode *> &lists, int left, int right) { if(left < right) { int mid = (left + right) / 2; ListNode *front = mergeSort(lists, left, mid); ListNode *back = mergeSort(lists, mid + 1, right); return merge(front, back); } return lists[left]; } ListNode *merge(ListNode *list1, ListNode *list2) { if(!list1 && !list2) return NULL; ListNode dummy(0); ListNode *tail = &dummy; while(list1 && list2) { if(list1->val < list2->val) { tail->next = list1; list1 = list1->next; } else { tail->next = list2; list2 = list2->next; } tail = tail->next; } if(list1) { tail->next = list1; } if(list2) { tail->next = list2; } return dummy.next; } };
相关文章推荐
- LeetCode OJ - Merge Two Sorted Lists
- LeetCode OJ:Merge k Sorted Lists(归并k个链表)
- 【LeetCode OJ】Merge Two Sorted Lists
- LeetCode OJ 之 Merge k Sorted Lists(合并k个有序链表)
- [LeetCode OJ]Merge k Sorted Lists
- 【LeetCode OJ】Merge Two Sorted Lists
- LeetCode OJ:Merge Two Sorted Lists(合并两个链表)
- LeetCode OJ 之 Merge Two Sorted Lists(合并两个有序的链表)
- LeetCode OJ-- Merge k Sorted Lists *@
- LeetCode OJ--Merge Two Sorted Lists
- LeetCode OJ——Merge Two Sorted Lists
- [LeetCode OJ]Merge Two Sorted Lists
- LeetCode OJ - Merge Sorted Array & Merge Two Sorted Lists
- Leetcode OJ 23 Merge k Sorted Lists [Hard]
- Leetcode OJ : Merge k Sorted Lists 归并排序+最小堆 mergesort heap C++ solution
- LeetCode OJ:Merge k Sorted Lists
- LeetCode OJ:Merge Two Sorted Lists
- LeetCode OJ 之Merge TwoSorted Lists 解题报告
- LeetCode 第 21 题 (Merge Two Sorted Lists)
- LeetCoder 23. Merge k Sorted Lists