Insertion Sort List LeetCode solution in C++
1class Solution {2public:3ListNode *insertionSortList(ListNode *head) {4ListNode *prev = head, *cur = head->next;5while (cur) {6ListNode *tmp = head, *pt = NULL;7while (tmp != cur and tmp->val < cur->val) {8pt = tmp;9tmp = tmp->next;10}11if (tmp == cur) {12prev = prev->next;13cur = cur->next;14continue;15}16prev->next = cur->next;17if (!pt) {18cur->next = head;19head = cur;20} else {21pt->next = cur;22cur->next = tmp;23}24cur = prev->next;25}26return head;27}28};