• [leetcode] Merge k Sorted list


    题目:(DC,LinkedList,Heap)

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

    题解:

    leetcode中不多的heap题,priorityqueue来表示heap,注意在构造new priorityqueue的时候的方法。

    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) {
     *         val = x;
     *         next = null;
     *     }
     * }
     */
    public class Solution {
        public ListNode mergeKLists(ArrayList<ListNode> lists) {
            if(lists.size()==0)
               return null;
               
           PriorityQueue<ListNode> q =new PriorityQueue<ListNode>(lists.size(),new Comparator<ListNode>(){
               public int compare(ListNode l1,ListNode l2){
                    int v1=l1.val;
                    int v2=l2.val;
                    return v1-v2;
                    //return String.valueOf(v1).compareTo(String.valueOf(v2));
                    
                    
               }
           });
           
           
           for(ListNode list:lists){
               if(list!=null)
                 q.add(list);
           } 
           
           ListNode head =new ListNode(0);
           ListNode prev=head;
           
           while(!q.isEmpty()){
               ListNode temp=q.poll();
               
               prev.next=temp;
               
                 if(temp.next!=null){
                     q.add(temp.next);
                 }
               prev=prev.next;
           }
           
           return head.next;
        }
       
    }
  • 相关阅读:
    es学习-java操作 2.4.0版本
    es学习-基础增删改查
    mongodb 查询条件
    mongodb-查询
    mysql 性能优化
    mysql 存储过程学习(总)
    MySQL 存储过程 -流程控制的使用
    MySQL 存储过程 -光标的使用
    maven的聚合和继承
    mavean的依赖传递和排除依赖
  • 原文地址:https://www.cnblogs.com/fengmangZoo/p/4192654.html
Copyright © 2020-2023  润新知