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

合并k个已排序的链表

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

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param lists ListNode类ArrayList
     * @return ListNode类
     */
    public ListNode mergeKLists (ArrayList<ListNode> lists) {
        // write code here

        return mergeLists(lists,0,lists.size()-1);
    }

    public ListNode mergeLists(ArrayList<ListNode> lists,int low,int high){
        if(low>high){
            return null;
        }
        if(low+1==high){
            return Merge(lists.get(low),lists.get(high));
        }
        if(low==high){
            return lists.get(low);
        }
        int mid=(low+high)/2;

        return Merge(mergeLists(lists,low,mid),mergeLists(lists,mid+1,high));
    }



    public ListNode Merge (ListNode pHead1, ListNode pHead2) {
        // write code here
        if(pHead1==null){
            return pHead2;
        }
         if(pHead2==null){
            return pHead1;
        }
        ListNode head = new ListNode(-1);
        ListNode p1 = pHead1, p2 = pHead2, tail = head;

        while (p1 != null && p2 != null) {
            if (p1.val < p2.val) {
                tail.next = p1;
                tail = tail.next;
                p1 = p1.next;
            } else {
                tail.next = p2;
                tail = tail.next;
                p2 = p2.next;
            }
        }

        while (p1 != null) {

            tail.next = p1;
            tail = tail.next;
            p1 = p1.next;
        }
        while (p2 != null) {

            tail.next = p2;
            tail = tail.next;
            p2 = p2.next;
        }

        return head.next;
    }


}

全部评论

相关推荐

04-02 16:49
门头沟学院 Java
_bloodstream_:我也面了科大讯飞,主管面的时候听说急招人优先考虑能尽快实习的,我说忙毕设,后面就一直没消息了
点赞 评论 收藏
分享
04-29 22:35
门头沟学院 Java
牛友说改了名字能收到offer:旧图新发查看图片
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务