zoukankan      html  css  js  c++  java
  • 【LeetCode】Insertion Sort List

    Sort a linked list using insertion sort.

    //用到O(N)的额外空间
    public class Solution {
        public ListNode insertionSortList(ListNode head) {
            if(head==null||head.next==null)
                return head;
            ListNode root = new ListNode(head.val);
            ListNode cur = head.next;
            while(cur!=null){
                ListNode tempNode = root;
                ListNode pre = root;
                while(tempNode!=null){
                    if(cur.val>tempNode.val){
                        pre=tempNode;
                        tempNode=tempNode.next;
                    }else{
                        break;
                    }
                }           
                if(tempNode==root){
                    ListNode newNode = new ListNode(cur.val);
                    newNode.next=root;
                    root=newNode;
                    cur=cur.next;
                }else if(tempNode==null){
                    ListNode newNode = new ListNode(cur.val);
                    pre.next=newNode;
                    cur=cur.next;
                }else{
                    ListNode newNode = new ListNode(cur.val);
                    pre.next=newNode;
                    newNode.next=tempNode;
                    cur=cur.next;
                }
                
                
            }
            
            return root;
            
        }
    }
    public class NSolution {
        public ListNode insertionSortList(ListNode head) {
            if(head==null||head.next==null)
                return head;
            
            ListNode cur = head.next;
            head.next=null;
            while(cur!=null){
                ListNode tempNode = head;
                ListNode pre = head;
                while(tempNode!=null){
                    if(cur.val>tempNode.val){
                        pre=tempNode;
                        tempNode=tempNode.next;
                    }else{
                        break;
                    }
                }           
                if(tempNode==head){
                    ListNode newNode = new ListNode(cur.val);
                    newNode.next=head;
                    head=newNode;
                    cur=cur.next;
                    
                    
                    
                }else if(tempNode==null){
                    ListNode newNode = new ListNode(cur.val);
                    pre.next=newNode;
                    cur=cur.next;
                }else{
                    ListNode newNode = new ListNode(cur.val);
                    pre.next=newNode;
                    newNode.next=tempNode;
                    cur=cur.next;
                }
                
                
            }
            
            return head;
            
        }
    }
  • 相关阅读:
    文件上传到服务器,写入文件和读取文件
    ajax
    jquery.gritter 提示
    lambda
    C# 对象初始化器和集合初始化器
    C# HttpHelper万能框架实现 接口
    插件总结
    backbone.js之Model篇 简单总结和深入(2)
    backBone.js初识
    利用 bugly 分析应用崩溃
  • 原文地址:https://www.cnblogs.com/yixianyixian/p/3721685.html
Copyright © 2011-2022 走看看