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

合并两个排序的链表

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

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode Merge(ListNode list1,ListNode list2) {
        //特殊值处理
        if(list1==null && list2==null){
            return null;
        }
        //链表1为空
        if(list1 == null){
            return list2;
        }
        //链表2为空
        if(list2 == null){
            return list1;
        }
        //链表1,2都不为空
        //与合并两个有序的数组步骤一样
        ListNode list = null;
        ListNode temp = null;
        //初始化新链表的头指针
        if(list1.val < list2.val){
            list = list1;
            list1 = list1.next;
        }else{
            list = list2;
            list2 = list2.next;
        }
        temp = list;
        while(list1!=null && list2!=null){//两个链表都不为空时,
            if(list1.val < list2.val){
                temp.next = list1;
                list1 = list1.next;
            }else{
                temp.next = list2;
                list2 = list2.next;
            }
            temp = temp.next;
        }
        if(list1 == null){//链表1已经被合并
            temp.next = list2;
        }
        if(list2 == null){//链表2已经被合并
            temp.next = list1;
        }
        
        return list;
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-25 17:13
点赞 评论 收藏
分享
06-13 10:15
门头沟学院 Java
想去夏威夷的大西瓜在...:我也是27届,但是我现在研一下了啥项目都没有呀咋办,哎,简历不知道咋写
点赞 评论 收藏
分享
积极的小学生不要香菜:你才沟通多少,没500不要说难
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务