1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* insertionSortList(ListNode* head) { ListNode* dummy = new ListNode(-1); ListNode* new_cur = head; while(new_cur != NULL) { ListNode *search_node = dummy; while(search_node->next != NULL) { if(search_node->next->val < new_cur->val) { search_node = search_node->next; } else { break; } } if(search_node->next == NULL) { search_node->next = new_cur; new_cur = new_cur->next; search_node->next->next = NULL; } else { ListNode *search_node_next = search_node->next; ListNode *new_cur_next = new_cur->next; search_node->next = new_cur; new_cur->next = search_node_next; new_cur = new_cur_next; } } return dummy->next; } };
|
近期评论