题解 | #合并k个已排序的链表#

合并k个已排序的链表

https://www.nowcoder.com/practice/65cfde9e5b9b4cf2b6bafa5f3ef33fa6

public ListNode mergeKLists(ArrayList<ListNode> lists) {
        //参数校验
        ListNode result = null;
        if(lists == null || lists.size() == 0) return null;
        if(lists.size() == 1 ) return lists.get(0);
        for(int i = 0; i < lists.size(); i++){
            if(i == 0){
                result = Merge(lists.get(i), lists.get(i + 1));
                i = i+1;
            }else{
                result = Merge(result,lists.get(i));
            }
        }
        return result;
}
public ListNode Merge(ListNode list1, ListNode list2) {
        //结果集
        ListNode head = null;
        ListNode result = null;
        //节点校验
        if (list1 == null && list2 == null) return null;
        if (list2 == null) {
            return list1;
        } else if (list1 == null) {
            return list2;
        }
        //取两个链表的第一元素
        while (list1 != null || list2 != null) {
            if (head == null) {
                //第一次循环
                if (list1.val >= list2.val) {
                    head = list2;
                    list2 = list2.next;
                } else {
                    head = list1;
                    list1 = list1.next;
                }
                result = head;
                continue;
            }
            //当list1为空时
            if (list1 == null) {
                head.next = list2;
                list2 = list2.next;
                head = head.next;
                continue;
            }
            //当list2为空时
            if (list2 == null) {
                head.next = list1;
                list1 = list1.next;
                head = head.next;
                continue;
            }
            //当两者都不为空时
            if (list1.val >= list2.val) {
                head.next = list2;
                list2 = list2.next;
            } else {
                head.next = list1;
                list1 = list1.next;
            }
            head = head.next;
        }
        return result;
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务