21-合并两个有序链表

Posted 弓呆的胖次

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
    }
}

  

以上是关于21-合并两个有序链表的主要内容,如果未能解决你的问题,请参考以下文章

21. 合并两个有序链表

21.合并两个有序链表

21. 合并两个有序链表

21. 合并两个有序链表

LeetCode 21. 合并两个有序链表

leetcode21合并两个有序链表