zoukankan      html  css  js  c++  java
  • lettcode21. Merge Two Sorted Lists

    lettcode21. Merge Two Sorted Lists

    Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

    从小到大排列的两个数组,合并成一个数组。递归的方法。注意:两个数组都为空的情况。

    This solution is not a tail-recursive, the stack will overflow while the list is too long

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
            if(l1==NULL) return l2;
            if(l2==NULL) return l1;
            
            if(l1->val>l2->val){
                ListNode *tmp=l2;
                tmp->next=mergeTwoLists(l1,l2->next);
                return tmp;
            }
            else{
                ListNode *tmp=l1;
                tmp->next=mergeTwoLists(l1->next,l2);
                return tmp;
            }
        }
    };
    

     2.新建了一个临时列表tmp,用时12ms,比上面多3ms(是什么原因呢?)

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
            ListNode head(-1);
            ListNode *tmp=&head;
            while(l1&&l2){
                if(l1->val<l2->val){
                    tmp->next=l1;
                    l1=l1->next;
                }else{
                    tmp->next=l2;
                    l2=l2->next;
                }
                tmp=tmp->next;
            }
            if(l1)
                tmp->next=l1;
            if(l2)
                tmp->next=l2;
            return head.next;
        }
    };
    
  • 相关阅读:
    FlowNet2.0论文笔记
    LeetCode NO477.汉明距离总和
    自然语言的分词方法之N-gram语言模型
    C++函数模板及其实例化和具体化
    Vue2源码解读(5)
    Vue2源码解读(4)
    Vue2源码解读(3)
    Vue2源码解读(2)
    Vue2源码解读(1)
    vue的双向绑定原理及实现
  • 原文地址:https://www.cnblogs.com/bananaa/p/7375816.html
Copyright © 2011-2022 走看看