zoukankan      html  css  js  c++  java
  • leetcode--21. 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.

    Example:

    Input: 1->2->4, 1->3->4
    Output: 1->1->2->3->4->4

    大神的代码
    class Solution {
        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;
            }
        }
    }



    自己写的很笨的代码
    class Solution {
        public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
            ListNode n1=l1,n2=l2;
            ListNode ln=null;
            ListNode ans=null;
            while(n1!=null&&n2!=null){
                if(n1.val<n2.val){
                    if(ln==null){
                        ln=n1; 
                        ans=ln;
                    }
                    else{
                        ln.next=n1;
                        ln=ln.next;
                    } 
                    n1=n1.next;      
                }
                else{
                    if(ln==null){
                        ln=n2;
                        ans=ln;
                    }
                    else{
                        ln.next=n2;
                        ln=ln.next;
                    }
                    n2=n2.next;
                }
            }
            while(n1!=null){
                if(ln==null){
                    ln=n1;
                    ans=ln;
                }
                else{
                    ln.next=n1;
                    ln=ln.next;
                }
                n1=n1.next;
            }
            while(n2!=null){
                if(ln==null){
                    ln=n2;
                    ans=ln;
                }
                else{
                    ln.next=n2;
                    ln=ln.next;
                }
                n2=n2.next;
            } 
            
            return ans;
        }
    }


  • 相关阅读:
    第4章 排序
    第5章 算术与代数
    第6章 组合数学
    第7章 数论
    第8章 回溯法
    第9章 图遍历
    第11章 动态规划
    第10章 图算法
    第12章 网格
    第13章 几何
  • 原文地址:https://www.cnblogs.com/albert67/p/10419375.html
Copyright © 2011-2022 走看看