您的位置:首页 > 其它

LeetCode-23. Merge k Sorted Lists

2018-02-27 15:48 429 查看

LeetCode-23. Merge k Sorted Lists

Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
思路:学会了合并两条有序链表后,此题就不难解决,依次将K条链表每两条进行合并,重复进行,直至最后剩下一条链表为止。class Solution {
public:
ListNode* mergeKLists(vector<ListNode*>& lists)
{
if (lists.empty())return NULL;
int len = lists.size();
while (len > 1)
{
for (int i = 0; i < len / 2; i++)
lists[i] = mergeTwoLists(lists[i], lists[len - i - 1]);
len = (len + 1) / 2;
}
return lists.front();
}
ListNode * mergeTwoLists(ListNode* l1, ListNode* l2)
{
if (l1 == NULL)return l2;
if (l2 == NULL)return l1;
if (l1->val <= l2->val)
{
l1->next = mergeTwoLists(l1->next, l2);
return l1;
}
else
{
l2->next = mergeTwoLists(l1, l2->next);
return l2;
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: