16-合并两个排序的链表

1. 题目描述

图片说明

2. 题解

-------------------------------------------------------【2021-08-07】更新------------------------------------------------

/*
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)
            return list2;
        if(list2==null)
            return list1;

        //均非空情况下
        ListNode res;
        if(list1.val<=list2.val)
        {
            res=new ListNode(list1.val);
            list1=list1.next;
        }
        else
        {
            res=new ListNode(list2.val);
            list2=list2.next;
        }
        ListNode tmp=res;//保存头节点
        while((list1!=null)&&(list2!=null))
        {
            if(list1.val<=list2.val)
            {
                tmp.next=new ListNode(list1.val);
                tmp=tmp.next;
                list1=list1.next;
            }
            else
            {
                tmp.next=new ListNode(list2.val);
                tmp=tmp.next;
                list2=list2.next;
            }
        }
        while(list1!=null)
        {
            tmp.next=new ListNode(list1.val);
            tmp=tmp.next;
            list1=list1.next;
        }
        while(list2!=null)
        {
            tmp.next=new ListNode(list2.val);
            tmp=tmp.next;
            list2=list2.next;
        }
        return res;
    }
}

图片说明

全部评论

相关推荐

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