码迷,mamicode.com
首页 > 编程语言 > 详细

合并两个排序链表

时间:2017-04-08 16:02:38      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:==   list   log   思路   merge   nod   合并   pre   两个指针   

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

思路:扫一遍维护递增,最后再添加原链表可能未被添加的部分

 public ListNode Merge(ListNode list1,ListNode list2) {
        if(list1==null&&list2==null) return null;
        if(list1==null&&list2!=null) return list2;
        if(list1!=null&&list2==null) return list1;
         ListNode res1=new ListNode(-1);
           ListNode res=res1;
       //要有两个指针指向创建的头结点,一个指针会走到末尾,返回的时候已经不能用了
        while(list1!=null&&list2!=null){
            if(list1.val<=list2.val){
                res.next=list1;
                res=res.next;
                list1=list1.next;
            }else{
                res.next=list2;
                res=res.next;
                list2=list2.next;
            }
        }
         while(list1 != null) {
            res.next = list1;
           res = res.next;
            list1 = list1.next;
        }
        while(list2 != null) {
            res.next = list2;
            res = res.next;
            list2 = list2.next;
        }
        return res1.next;
    }

 

合并两个排序链表

标签:==   list   log   思路   merge   nod   合并   pre   两个指针   

原文地址:http://www.cnblogs.com/team42/p/6681902.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!