剑指Offer十六: 合并两个排序的链表

题干

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

思路

记得之前在写合并时候有写到合并两个排序的数组,使用的是先创建一个数组,然后取数组的较小值放入到新数组中,然后进行位置的加一,依次类推,最后再进行一个判断,是否到达了数组的末端,因为有可能会出现一个数组的最小值都大于另外一个数组的最大值。这里是链表,使用到了另外一种递归解决的方法,发现更加简单。

代码

public class Solution {
    public ListNode Merge(ListNode list1,ListNode list2) {
        if(list1==null)
            return list2;
        if(list2==null)
            return list1;
        if(list1.val<=list2.val){
             list1.next=Merge(list1.next,list2);
            return list1;
        }
           
        else{
            list2.next=Merge(list1,list2.next);
            return list2;
        } 
    }
}
发布了42 篇原创文章 · 获赞 16 · 访问量 1649

猜你喜欢

转载自blog.csdn.net/weixin_44015043/article/details/105335657
今日推荐