合并两个排序的链表

question:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。(单调不减的意思是要么递增要么不变,但是肯定不会减小)

resolution:

 public ListNode Merge(ListNode list1,ListNode list2) {
        //定义一个新的链表头部
        ListNode head = new ListNode(0);//给head赋一个初值,便于指针的移动
        ListNode root = head;//将头部指针复制一下,用于返回输出的时候用,不然到时候head已经指向了尾部
        //当List1和List2一样长
        while (list1 != null && list2 != null){
            //比较list1的head和list2的head大小
            if(list1.val > list2.val){
                head.next = list2;
                list2 = list2.next;
            }else {
                head.next = list1;
                list1 = list1.next;
            }
            head = head.next;
        }
        //当list1长
        if(list1 != null){
          head.next = list1;
        }
        //当list2长
        if(list2 != null){
           head.next = list2;
        }

        return root.next;

    }

 

posted @ 2019-01-24 21:34  crr121  阅读(76)  评论(0编辑  收藏  举报