zoukankan      html  css  js  c++  java
  • LeetCode 147: Insertion Sort List

    /**
     * 147. Insertion Sort List
     * 1. Time:O(n2)  Space:O(1)
     * 2. Time:O(n2)  Space:O(1)
     */
    
    // 1. Time:O(n2)  Space:O(1)
    class Solution {
        public ListNode insertionSortList(ListNode head) {
            ListNode dummy = new ListNode(0);
            ListNode prev = dummy;
            ListNode cur = head;
            while(cur!=null){
                ListNode tmp = cur.next;
                while(prev.next!=null && prev.next.val<cur.val) prev = prev.next;
                cur.next = prev.next;
                prev.next = cur;
                prev = dummy;
                cur = tmp;
            }
            return dummy.next;
        }
    }
    
    // 2. Time:O(n2)  Space:O(1)
    class Solution {
        public ListNode insertionSortList(ListNode head) {
            ListNode dummy = new ListNode(Integer.MIN_VALUE);
            ListNode prev = dummy;
            ListNode tail = dummy;
            ListNode cur = head;
            while(cur!=null){
                if(tail.val<cur.val){
                    tail.next = cur;
                    tail = cur;
                    cur = cur.next;
                }else{
                    ListNode tmp = cur.next;
                    while(prev.next!=null && prev.next.val<cur.val) prev = prev.next;
                    tail.next = tmp;
                    cur.next = prev.next;
                    prev.next = cur;
                    prev = dummy;
                    cur = tmp;
                }
            }
            return dummy.next;
        }
    }
    
  • 相关阅读:
    Python Day13:开放封闭原则、函数装饰器、全局局部变量
    Python Day12
    Python Day11
    Python Day10
    drf框架
    drf框架
    drf框架
    drf框架
    vue框架
    vue框架
  • 原文地址:https://www.cnblogs.com/AAAmsl/p/12862424.html
Copyright © 2011-2022 走看看