• 21. 合并两个有序链表


    传统的都是再建一个新链表,但是这样子占用空间太大了
    我就想着能否有一个在原来两条链表的基础上进行操作的方法
    就写了这个解法,leetcode上的速度内存分析如下:

    执行用时 :  2 ms , 在所有 Java 提交中击败了95.47%的用户
    内存消耗 :  34.7 MB, 在所有 Java 提交中击败了97.09%的用户
    
    

    直接上代码:

      public static ListNode mergeTwoLists(ListNode l1, ListNode l2) {
            if(l1 == null){
                return l2;
            }
            if(l2 == null){
                return l1;
            }
            ListNode before = null;
            ListNode head = null;
            ListNode another = null;
            ListNode result = null;
            if(l1.val <= l2.val) {
                head = l1;
                result = head;
                before = head;
                another = l2;
                head = head.next;
            }else{
                head = l2;
                result = head;
                before = head;
                another = l1;
                head = head.next;
            }
            //todo: 用head.next 或者another.next 来进行判断即可。
            while(head != null && another != null){
                if(head.val <= another.val){
                    before.next = head;
                    head = head.next;
                    before = before.next;
                }else{
                    before.next = another;
                    another = another.next;
                    before = before.next;
                }
            }
            if(head != null && another == null) {
               before.next = head;
            }
            if(head == null && another != null) {
                before.next = another;
            }
            return result;
        }
    
    
  • 相关阅读:
    hbase java api
    hbase
    误删/usr文件夹解决办法
    死锁问题 代码示例
    H2O 生成 多线程并发控制 Semaphore
    多线程 打印零与奇偶数
    多线程交替打印 采用Semaphore
    多线程按顺序执行
    判断回文数
    整数反转
  • 原文地址:https://www.cnblogs.com/disandafeier/p/11064169.html
Copyright © 2020-2023  润新知