首页 > 代码库 > LeetCode-Insertion Sort List[AC源码]
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:0710 * @Mail nashiyue1314@163.com 11 */12 public class Solution {13 14 public ListNode insertionSortList(ListNode head) {15 // if only one or two elements ,return head16 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 position24 while(tmp != cur && tmp.val < cur.val){25 tmp = tmp.next;26 }27 //if need insert, switch the value28 if(tmp != cur){29 int num1 = cur.val;30 int num2 ;31 while(tmp != cur){32 //store the tmp value33 num2 = tmp.val;34 tmp.val = num1;35 num1 = num2;36 tmp = tmp.next;37 }38 //init cur39 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 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。