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

合并两个排序的链表

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)
//             return list2;
//         if(list2 == null)
//             return list1;
//         ListNode dummy = new ListNode(-1);
//         ListNode cur = dummy;
//         //循环遍历两个连表,两个链表不为空循环合并
//         while(list1 !=null && list2 != null){
//             if(list1.val < list2.val){
//                 cur.next = list1;
//                 list1 = list1.next;
//             }else{
//                 cur.next = list2;
//                 list2 = list2.next;
//             }
//             //后移指针
//             cur = cur.next;
//         }
//         //判断list1是空还是list2,将非空的连接到结果集上
//         cur.next = list1 != null ? list1 : list2;
//         return dummy.next;
/**************************递归写法************************/
        
        //递归终止条件
        if(list1 == null)
            return list2;
        else if (list2 == null)
            return list1;
        
        //递归部分
        else if(list1.val < list2.val){
            //将其指向剩下部分中较小的
            list1.next = Merge(list1.next,list2);
            //回溯返回,已经连接好的list1以及其后半部分
            return list1;
        }
        else{
            list2.next = Merge(list1,list2.next);
            return list2;
        }
    }
}
全部评论

相关推荐

贺兰星辰:不要漏个人信息,除了简历模板不太好以外你这个个人简介是不是太夸大了...
点赞 评论 收藏
分享
投票
我要狠拿offer:如果不是必须去成都绝对选九院呀,九院在四川top1研究所了吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务