美文网首页
16、合并两个有序链表

16、合并两个有序链表

作者: quiterr | 来源:发表于2017-09-02 21:41 被阅读0次

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

    /*
    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 head = null;
            if(list1.val<=list2.val){
                head =list1;
                list1=list1.next;
            }else{
                head=list2;
                list2=list2.next;
            }
    
            //新链表的指针
            ListNode p = head;
    
            //开始归并
            while(list1!=null&&list2!=null){
                if(list1.val<=list2.val){
                    p.next=list1;
                    list1=list1.next;
                }else{
                    p.next=list2;
                    list2=list2.next;
                }
                p=p.next;
            }
            //这两个if,只有一个会执行
            if(list1!=null){
                p.next=list1;
            }
            if(list2!=null){
                p.next=list2;
            }
            return head;
        }
       
    }
    

    相关文章

      网友评论

          本文标题:16、合并两个有序链表

          本文链接:https://www.haomeiwen.com/subject/xektwttx.html