21-合并两个有序链表

 思路:很简单,两个指针cur1,cur2分别指向l1,l2,当cur1,cur2都不空时,比较两个指针指向的节点的数值,把小的那个接到结果res上,之后这个cur1/cur2后移

当这个循环结束后,有可能剩下一个没被遍历到的链表(因为两个链表长度可能不一样),所有再写俩循环就行。

class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        ListNode cur1=l1;
        ListNode cur2=l2;
        ListNode res=new ListNode(0);
        ListNode biaoji=res;
        
        while(cur1!=null&&cur2!=null)
        {
            if(cur1.val<=cur2.val)
            {
                res.next=cur1;
                res=res.next;
                cur1=cur1.next;
            }
            else
            {
                res.next=cur2;
                res=res.next;
                cur2=cur2.next;
            }
        }
        while(cur1!=null)
        {
            res.next=cur1;
            res=res.next;
            cur1=cur1.next;
        }
        while(cur2!=null)
        {
            res.next=cur2;
            res=res.next;
            cur2=cur2.next;
        }
        return biaoji.next;
    }
}

  

原文地址:https://www.cnblogs.com/lzh1043060917/p/12791750.html