0
点赞
收藏
分享

微信扫一扫

面试必刷TOP101:5、合并k个已排序的链表

一、题目

合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。

面试必刷TOP101:5、合并k个已排序的链表_i++

二、题解

public ListNode mergeKLists (ArrayList<ListNode> lists) {
        ArrayList<Integer> arr = new ArrayList<>();
        ListNode ret = new ListNode();
        ListNode temp;
        for (ListNode listNode : lists) {
            temp = listNode;
            while (temp != null) {
                arr.add(temp.val);
                temp = temp.next;
            }
        }
        arr.sort(Integer::compareTo);
        temp = ret;
        for (int i = 0; i < arr.size(); i++) {
            temp.val = arr.get(i);
            if (temp.next == null && i != arr.size() - 1) {
                temp.next = new ListNode();
                temp = temp.next;
            }
        }
        if(ret.val==0&&ret.next==null){
            return null;
        }
        return ret;
    }
}

举报

相关推荐

0 条评论