zoukankan      html  css  js  c++  java
  • [LintCode] Insertion Sort List

    Sort a linked list using insertion sort.

    Example

    Given 1->3->2->0->null, return 0->1->2->3->null.

     1 /**
     2  * Definition for ListNode.
     3  * public class ListNode {
     4  *     int val;
     5  *     ListNode next;
     6  *     ListNode(int val) {
     7  *         this.val = val;
     8  *         this.next = null;
     9  *     }
    10  * }
    11  */ 
    12 public class Solution {
    13     /**
    14      * @param head: The first node of linked list.
    15      * @return: The head of linked list.
    16      */
    17     public ListNode insertionSortList(ListNode head) {
    18         if(head == null || head.next == null){
    19             return head;
    20         }
    21         ListNode dummy = new ListNode(0);
    22         dummy.next = head;
    23         ListNode sorted = dummy.next; ListNode prev = dummy;
    24         ListNode unsorted = head.next;
    25         sorted.next = null;
    26         while(unsorted != null){
    27             while(sorted != null && sorted.val <= unsorted.val){
    28                 prev = sorted;
    29                 sorted = sorted.next;    
    30             }  
    31             ListNode temp = unsorted.next;
    32             unsorted.next = sorted;
    33             prev.next = unsorted;
    34             
    35             unsorted = temp;
    36             
    37             prev = dummy;
    38             sorted = dummy.next;
    39         }
    40         return dummy.next;
    41     }
    42 }
  • 相关阅读:
    Python基础四
    Python基础三
    Python基础二
    Python基础一
    JAVA测试
    国庆随笔
    ATM-JAVA程序 //程序有5处相同错误,找不出原因 转账功能没有实现,修改密码来不及实现了
    JAVA程序测试感受
    第八周
    第七周
  • 原文地址:https://www.cnblogs.com/lz87/p/7660419.html
Copyright © 2011-2022 走看看