`
hcx2013
  • 浏览: 88785 次
社区版块
存档分类
最新评论

Merge k Sorted Lists

 
阅读更多

Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.

 

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
public class Solution {
    public ListNode mergeKLists(ListNode[] lists) {
        if (lists==null || lists.length==0) {
        	return null;
        }
        PriorityQueue<ListNode> queue = new PriorityQueue<ListNode>(lists.length, new Comparator<ListNode>() {

			@Override
			public int compare(ListNode o1, ListNode o2) {
				if (o1.val < o2.val) {
					return -1;
				} else if (o1.val > o2.val) {
					return 1;
				} else {
					return 0;
				}
			}
		});
        for (ListNode list : lists) {
        	if (list == null) {
        		continue;
        	}
        	queue.add(list);
        }
        ListNode head = new ListNode(0);
        ListNode curNode = head;
        while (!queue.isEmpty()) {
        	ListNode t = queue.poll();
    		curNode.next = t;
        	curNode = t;
        	if (t.next != null) {
        		queue.add(t.next);
        	}
        }
        return head.next;
    }
}

 

0
4
分享到:
评论

相关推荐

    mergeksorted.cs

    Merge k Sorted Lists 给定k个有序数组并将其合并成1个有序数组, 代码采用C#编写

    LeetCode Merge 2 Sorted Lists解决方案

    LeetCode Merge 2 Sorted Lists解决方案详解 Merge 2 Sorted Lists是LeetCode上的一个经典算法题目,旨在考察程序员对链表的操作和排序算法的掌握程度。下面对该题目的解决方案进行详细的分析和解释。 问题描述 ...

    程序员面试宝典LeetCode刷题手册

    第四章 Leetcode 题解 1. Two Sum 2. Add Two Numbers 3. Longest Substring Without Repeating Characters ...23. Merge k Sorted Lists 24. Swap Nodes in Pairs 25. Reverse Nodes in k-Group 26. Remove Dupli

    c语言-leetcode 0023-merge-k-sorted-lists.zip

    c c语言_leetcode 0023_merge_k_sorted_lists.zip

    leetcode中文版-LeetCode:力码

    21.Merge Two Sorted Lists LeetCode 23.Merge k Sorted Lists(solve1) LeetCode 23.Merge k Sorted Lists(solve2) LeetCode 86.Partition List LeetCode 92.Reverse Linked List II LeetCode 138.Copy List with ...

    js-leetcode题解之23-merge-k-sorted-lists.js

    js js_leetcode题解之23-merge-k-sorted-lists.js

    c语言-c语言编程基础之leetcode题解第23题合并K个升序链表.zip

    本题来自著名的在线编程挑战平台LeetCode,题号为第23题,名为“Merge K Sorted Lists”(合并K个升序链表)。这是一道典型的数据结构与算法题目,主要考察的是链表操作和排序技巧。 链表是计算机科学中常用的一种...

    Leetcode book刷题必备

    23. Merge K Sorted Lists:合并 k 个排序链表。 24. Copy List with Random Pointer:复制带有随机指针的链表。 【二叉树】 25. Validate Binary Search Tree:验证二叉搜索树。 26. Maximum Depth of Binary Tree...

    lrucacheleetcode-leetcode-journal:记录所有LeetCode挑战的存储库

    lru缓存leetcode 力扣日记 欢迎来到我的 LeetCode 期刊库。 我的每个问题都将包括一个初始计划...k Sorted Lists (Hard) 31. Next Permutation (Medium) 34. Find First and Last Position of Element in Sorted Arr

    leetcode java

    - 有难度的链表题目则要求合并K个有序链表(Merge K Sorted Lists)、复制带有随机指针的链表(Copy List with Random Pointer)。 **二叉树(Binary Tree)** 二叉树是另一个重要的数据结构。LeetCode的题目涵盖了...

    2、DFS、回溯、分治法必练题(含答案).pdf

    * Merge k Sorted Lists:该题目要求将 k 个排序列表合并成一个排序列表。解决该题目需要使用分治法,递归地合并每两个列表,然后逐步合并,直到合并所有列表。 * Different Ways to Add Parentheses:该题目要求...

    c语言-leetcode 0021-merge-two-sorted-lists.zip

    c c语言_leetcode 0021_merge_two_sorted_lists.zip

    leetcode分类-leetcode:leetcode问题的代码

    leetcode 分类leetcode 问题分类 leetcode代码仓库,我的解题思路写在我的博客里: leetcode 代码库,我博客上的解题思路: mkdir 列表: 大批 #1:Two Sum #4:Median ...Sorted ...#23:Merge k Sorted Lists

    js-leetcode题解之21-merge-two-sorted-lists.js

    js js_leetcode题解之21-merge-two-sorted-lists.js

    C语言-leetcode题解之21-merge-two-sorted-lists.c

    c语言入门 C语言_leetcode题解之21-merge-two-sorted-lists.c

    小象学院2020 刷题班 3.2-4.171

    10. **合并 k 个排序链表**(Merge k Sorted Lists) - 知识点:链表,优先队列 - 解题策略:创建一个最小堆,将所有链表的头结点放入堆中,每次取出堆顶元素(即当前最小值)并将其后继节点插入堆中,直至堆为空...

    _leetcode-python.pdf

    - Merge k Sorted Lists: 合并k个排序链表。 - Swap Nodes in Pairs / Reverse Nodes in k-Group: 这两个问题涉及到在链表中按特定规则交换节点或反转节点组。 - Remove Duplicates from Sorted Array / Remove ...

Global site tag (gtag.js) - Google Analytics