2020-12-07

leetcode21. 合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

示例:

输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4

思路:
尾插法;然后谁没结束就把结尾指向那个没结束的就行了。

代码:

class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        ListNode root1=l1;
        ListNode root2=l2;
        ListNode head=new ListNode();
        ListNode tail=head;
        while(root1!=null&&root2!=null){
            if(root1.val>root2.val){
                tail.next=root2;
                root2=root2.next;
            }else{
                tail.next=root1;
                root1=root1.next;
            }
            tail=tail.next;
        }
        tail.next=root1==null?root2:root1;
        return head.next;
        
    }
}
上一篇:leetcode-第10周双周赛-5080-查找两颗二叉搜索树之和


下一篇:Java经典23种设计模式之创造型模式(一)