0
点赞
收藏
分享

微信扫一扫

合并k个已排序的链表

yundejia 2022-03-22 阅读 56
牛客算法

采用逐步遍历

 public ListNode mergeKLists(ArrayList<ListNode> lists) {
        ListNode root = new ListNode(-1);
       
        for(int i = 0 ;i< lists.size();i++){
            root.next = mergeTwoLists(root.next,lists.get(i));
        }
        return root.next;
    }
    
    
    private ListNode mergeTwoLists(ListNode head1,ListNode head2){
    
        if(head1 == null || head2 == null){
            return head1==null?head2:head1;
        }
        ListNode root = new ListNode(-1);
        ListNode temp = root;
        while(head1 != null && head2 != null){
            
            if(head1.val > head2.val){
                temp.next = head2;
                temp = temp.next;
                head2 = head2.next;
            }
            else
            {
                 temp.next = head1;
                temp = temp.next;
                head1= head1.next;
            }

        }
        if(head1 != null){
            temp.next = head1;
           
        }
        else{
            temp.next = head2;
           
        }
        return root.next;
    }

在这里插入图片描述

举报

相关推荐

0 条评论