【LeetCode】 023. Merge k Sorted Lists

来源:互联网 发布:java后端开发教程 编辑:程序博客网 时间:2024/05/18 21:46

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.length == 0) {            return null;        }        PriorityQueue<ListNode> list = new PriorityQueue<ListNode>(new Comparator<ListNode>() {            @Override            public int compare(ListNode n1, ListNode n2) {                return n1.val - n2.val;            }        });        ListNode temp = new ListNode(0);        ListNode res = temp;        for (ListNode subList : lists) {            if (subList != null) {                list.add(subList);            }        }        while (!list.isEmpty()) {            temp.next = list.poll();            temp = temp.next;            if (temp.next != null) {                list.add(temp.next);            }        }        return res.next;    }}


0 0
原创粉丝点击