zoukankan      html  css  js  c++  java
  • 剑指:合并两个排序的链表

    题目描述

    输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。

    样例

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

    解法

    解法一

    同时遍历两链表进行 merge

    /*
    public class ListNode {
        int val;
        ListNode next = null;
    
        ListNode(int val) {
            this.val = val;
        }
    }*/
    public class Solution {
        public ListNode Merge(ListNode list1,ListNode list2) {
            if (list1 == null) return list2;
            if (list2 == null) return list1;
            
            ListNode p = list1;
            ListNode q = list2;
            
            ListNode ph = new ListNode(-1);
            ListNode cur = ph;
            
            while(p!=null && q!=null){
                if(p.val<q.val){
                    ListNode t = p.next;
                    cur.next = p;
                    p.next = null;
                    p = t;
                } else {
                    ListNode t = q.next;
                    cur.next = q;
                    q.next = null;
                    q = t;
                }
                cur = cur.next;
            }
            cur.next = p == null ? q : p;  
            return ph.next;
        }
    }

    解法二:递归

    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
    class Solution {
    
        public ListNode Merge(ListNode list1, ListNode list2) {
            if(list1==null)
                return list2;
            if(list2==null)
                return list1;
            ListNode res = null;
            if(list1.val<list2.val){
                res = list1;
                res.next = Merge(list1.next, list2);
            }else{
                res = list2;
                res.next = Merge(list1, list2.next);
            }
            return res;
        }
    }
  • 相关阅读:
    nsurlSession
    IOS 锁
    常见问题
    xcode编译太慢
    ios之keychain
    iOS多线程系列(四)----GCD之Dispatch Queues
    iOS多线程系列(三)----NSOperationQueue
    iOS多线程系列(二)------NSOperation
    iOS多线程系列(一)------NSThread
    kvm虚拟机最佳实践系列3-kvm克隆和静态迁移
  • 原文地址:https://www.cnblogs.com/lisen10/p/11123337.html
Copyright © 2011-2022 走看看