首页 > 代码库 > Leetcode#147 Insertion Sort List

Leetcode#147 Insertion Sort List

原题地址

 

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

 

代码:

 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