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

Leetcode#147 Insertion Sort List

时间:2015-01-29 19:09:17      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:

原题地址

 

心得:有关链表的题目,多用中间变量,代码写得清晰一点,适当注释

 

代码:

 1 ListNode *insertionSortList(ListNode *head) {
 2         if (!head) return NULL;
 3         
 4         ListNode *curr = head->next;
 5         ListNode *prev = head;
 6         while (curr) {
 7             ListNode *p = NULL;
 8             ListNode *c = head;
 9             // 寻找插入位置
10             while (c->val < curr->val) {
11                 p = c;
12                 c = c->next;
13             }
14             // 如果要插入的位置就是当前位置
15             if (c == curr) {
16                 prev = curr;
17                 curr = curr->next;
18             }
19             // 否则插入节点
20             else {
21                 prev->next = curr->next;
22                 curr->next = c;
23                 if (!p) // 如果带插入的位置是队首
24                     head = curr;
25                 else // 普通情况
26                     p->next = curr;
27                 curr = prev->next;
28             }
29         }
30         
31         return head;
32 }

 

Leetcode#147 Insertion Sort List

标签:

原文地址:http://www.cnblogs.com/boring09/p/4260465.html

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