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

合并两个排序的链表

https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337

//代码先跑起来才是最重要的,最后再优化代码,不然容易蒙杯
//先是pHead代表一个节点,一个个赋值,后面怎么一下子一个pHead能把全部都赋值过来呀?
//考虑各种情况的输出结果
import java.util.*;

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

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param pHead1 ListNode类 
     * @param pHead2 ListNode类 
     * @return ListNode类
     */
    public ListNode Merge (ListNode pHead1, ListNode pHead2) {
        // write code here
        // 数词比较然后链接,时间复杂度太高
        if(pHead1==null) return pHead2;
        if(pHead2==null) return pHead1;
        // 借助新链表,循环条件为两链表都不为空
        ListNode newlist = new ListNode(0);
        ListNode cur = newlist;
        while(pHead1!=null&&pHead2!=null){
            if(pHead1.val > pHead2.val){
                cur.next = pHead2;
                pHead2 = pHead2.next;
            }else{
                cur.next = pHead1;
                pHead1 = pHead1.next;
            }
            //每次链接一个节点
            cur = cur.next;
        }
        //可能还有链表剩余节点
        // cur.next = pHead1!=null? pHead1:null;
        // cur.next = pHead2!=null? pHead2:null;
        if (pHead1 != null) {
            cur.next = pHead1;
        }
 
        if(pHead2 != null){
            cur.next = pHead2;
        }

        return newlist.next;
        
    }
}

全部评论

相关推荐

和蔼:在竞争中脱颖而出,厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务