码迷,mamicode.com
首页 > 其他好文 > 详细

【leetcode刷题笔记】Insertion Sort List

时间:2014-07-14 17:47:19      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   for   io   代码   

Sort a linked list using insertion sort.


 

题解:实现链表的插入排序。

要注意的地方就是,处理链表插入的时候尽量往当前游标的后面插入,而不要往前面插入,后者非常麻烦。所以每次利用kepeler.next.val和head.val比较大小,而不是kepeler.val和head.val比较大小,因为如果用后者,要把head指向的节点插入到kepeler指向的节点的前面,如果kepeler指向的节点是头结点,就更麻烦了。

代码如下:

 1 /**
 2  * Definition for singly-linked list.
 3  * public class ListNode {
 4  *     int val;
 5  *     ListNode next;
 6  *     ListNode(int x) {
 7  *         val = x;
 8  *         next = null;
 9  *     }
10  * }
11  */
12 public class Solution {
13     public ListNode insertionSortList(ListNode head) {
14         ListNode newHead = new ListNode(0);
15           
16           while(head != null){
17               ListNode kepeler = newHead;
18               while(kepeler.next != null && kepeler.next.val < head.val){
19                   kepeler = kepeler.next;
20               }
21               
22               ListNode temp = head.next;
23               head.next = kepeler.next;
24               kepeler.next = head;
25               head = temp;
26           }
27           
28           return newHead.next;
29     }
30 }

 

【leetcode刷题笔记】Insertion Sort List,布布扣,bubuko.com

【leetcode刷题笔记】Insertion Sort List

标签:style   blog   color   for   io   代码   

原文地址:http://www.cnblogs.com/sunshineatnoon/p/3842932.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!