• LeetCoded第21题题解--合并两个有序链表


    21. 合并两个有序链表

    将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
    示例:
    输入:1->2->4, 1->3->4
    输出:1->1->2->3->4->4

    题解

    思路一:暴力解法
    创建一个head节点创建一个新的链表,并创建一个end节点指向最后一个节点,比较两个升序链表值将end节点指向值较小节点,以此类推。

    public static ListNode mergeTwoLists(ListNode l1, ListNode l2) {
            ListNode head = new ListNode(-1);
            ListNode end = head;
            while (l1!=null&&l2!=null){
                if (l1.val<=l2.val){
                    end.next = l1;
                    l1 = l1.next;
                }else {
                    end.next = l2;
                    l2 = l2.next;
                }
                end = end.next;
            }
            end.next = l1==null?l2:l1;
            return head.next;
        }
    

    思路二:递归解法
    升序节点中值较小的节点的next与另一个节点再次merge为空则结束

    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
            if (l1==null){
                return l2;
            }
            if (l2==null){
                return l1;
            }
            if (l1.val <= l2.val){
                l1.next = mergeTwoLists(l1.next,l2);
                return l1;
            }else {
                l2.next = mergeTwoLists(l1, l2.next);
                return l2;
            }
        }
    
  • 相关阅读:
    C#枚举中使用Flags特性
    WPF 设置输入只能英文
    PHP array_merge_recursive() 函数
    PHP array_merge() 函数
    PHP array_map() 函数
    PHP array_keys() 函数
    PHP array_key_exists() 函数
    [HNOI2016]网络
    WPF 设置输入只能英文
    WPF 设置输入只能英文
  • 原文地址:https://www.cnblogs.com/zhangguangxiang/p/14232497.html
Copyright © 2020-2023  润新知