zoukankan      html  css  js  c++  java
  • mergeKLists

    23. 合并K个排序链表
    合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。
    
    示例:
    
    输入:
    [
      1->4->5,
      1->3->4,
      2->6
    ]
    输出: 1->1->2->3->4->4->5->6
    通过次数134,183提交次数257,914
    
    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
    class Solution {
        public ListNode mergeKLists(ListNode[] lists) {
            PriorityQueue<ListNode> queue = new PriorityQueue<ListNode>(new Comparator<ListNode>() {
                @Override
                public int compare(ListNode o1, ListNode o2) {
                    return o1.val - o2.val;
                }
            });
            for(ListNode listNode: lists){
                if(listNode != null){
                    queue.add(listNode);
                }
            }
            ListNode res = new ListNode(-1);
            ListNode head = res;
            while(!queue.isEmpty()){
                ListNode node = queue.poll();
                head.next = node;
                head = head.next;
                if(node.next!=null){
                    queue.add(node.next);
                }
            }
            return res.next;
        }
    }
    
  • 相关阅读:
    shell
    梯度,也即该物理参数的变化率,导数
    一些石油类核心期刊
    泰勒展开
    向量范数
    添加打印机
    泛函
    9.3.4 BeaufitulSoup4
    9.3.3 scrapy 框架
    9.3.2 网页爬虫
  • 原文地址:https://www.cnblogs.com/athony/p/13191624.html
Copyright © 2011-2022 走看看