zoukankan      html  css  js  c++  java
  • LeetCode-Insertion Sort List[AC源码]

     1 package com.lw.leet5;
     2 
     3 /**
     4  * @ClassName:Solution
     5  * @Description:
     6  *         Insertion Sort List 
     7  *         Sort a linked list using insertion sort.
     8  * @Author LiuWei
     9  * @Date 2014年8月20日下午7:50:07
    10  * @Mail nashiyue1314@163.com 
    11  */
    12 public class Solution {
    13 
    14     public ListNode insertionSortList(ListNode head) {
    15         // if only one or two elements ,return head
    16         if(head == null || head.next == null){
    17             return head;
    18         }
    19         ListNode cur = head.next;
    20         ListNode tmp = null;
    21         while(cur != null){
    22             tmp = head;
    23             //get the insertion position
    24             while(tmp != cur && tmp.val < cur.val){
    25                 tmp = tmp.next;
    26             }
    27             //if need insert, switch the value
    28             if(tmp != cur){
    29                 int num1 = cur.val;
    30                 int num2 ;
    31                 while(tmp != cur){
    32                     //store the tmp value
    33                     num2 = tmp.val;
    34                     tmp.val = num1;
    35                     num1 = num2;
    36                     tmp = tmp.next;
    37                 }
    38                 //init cur
    39                 tmp.val = num1;
    40             }
    41             cur = cur.next;
    42         }
    43         return head;
    44     }
    45 
    46     public static void main(String args[]) {
    47         int[] arr = {10,3,2,4,0,0,-1,2,-2};
    48          ListNode head = new ListNode(arr[0]);
    49          ListNode curr = head;
    50          for(int i=1; i<arr.length; i++){
    51              ListNode node = new ListNode(arr[i]);
    52              curr.next = node;
    53              curr = curr.next;
    54          }
    55         
    56         ListNode tmp  = new Solution().insertionSortList(head);
    57         while(tmp != null){
    58             System.out.println(tmp.val);
    59             tmp = tmp.next;
    60         }
    61     }
    62 
    63 }
  • 相关阅读:
    ylbtech-dbs-m-QQ邮箱
    ylbtech-Bill(发票管理)-数据库设计
    ylbtech-Recode(记录)-数据库设计
    ylbtech-LanguageSamples-Yield
    ylbtech-LanguageSamples-XMLdoc
    ylbtech-LanguageSamples-Versioning(版本控制)
    线程局部变量的使用
    守护线程的创建和运行
    有助于改善性能的技巧
    使用NIO提升性能
  • 原文地址:https://www.cnblogs.com/nashiyue/p/3925603.html
Copyright © 2011-2022 走看看