zoukankan      html  css  js  c++  java
  • 23. Merge k Sorted Lists

    一、题目

      1、审题

        

      2、分析

        将 n 个有序链表合并成为一个有序链表。

    二、解答

      1、思路:

      Java 有一个 PriorityQueue,该队列能够将放入的对象进行排序。故将所有非空队头元素放入该队列,取出一个元素后,再放入所取出元素指向的下一个非空结点;当队列中元素为空时,取出的顺序即为排序后的新的链表的元素顺序。

      有关 PriorityQueue:

        add(E e)    添加元素
        clear() 清空
        contains(Object o) 检查是否包含当前参数元素
        offer(E e) 添加元素
        peek() 读取元素,(不删除)
        poll() 取出元素,(删除)
        remove(Object o) 删除指定元素
        size() 返回长度
      
    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
    class Solution {
        public ListNode mergeKLists(ListNode[] lists) {
    
            if(lists == null || lists.length == 0)
                return null;
    
            /*
             *  PriorityQueue:    自动根据优先级排序的队列
             */
            PriorityQueue<ListNode> heap = new PriorityQueue<ListNode>(10, new Comparator<ListNode>() {
                @Override
                public int compare(ListNode o1, ListNode o2) {
                    return o1.val - o2.val;
                }
            });
    
            for (int i = 0; i < lists.length; i++)
                if(lists[i] != null)
                    heap.offer(lists[i]);   // add
    
            ListNode head = null;
            ListNode pre = head;
            while(heap.size() > 0) {
                ListNode cur = heap.poll();     // 取出,删除
                if(head == null)
                    head = cur;
                else
                    pre.next = cur;
    
                pre = cur;
                if(cur.next != null)
                    heap.offer(cur.next);   //add
            }
            return  head;
        }
    }
  • 相关阅读:
    javascript入门篇(五)
    javascript入门篇(四)
    javascript入门篇(三)
    原生js查询、添加、删除类
    关于禁止复制网页内容应该做的兼容
    json快速入门
    jquery快速入门(五)
    jquery快速入门(四)
    jquery快速入门(三)
    Triangle 1.6 (A Two-Dimensional Quality Mesh Generator and Delaunay Triangulator)
  • 原文地址:https://www.cnblogs.com/skillking/p/9417428.html
Copyright © 2011-2022 走看看