首页 > 代码库 > Insertion Sort List

Insertion Sort List

Sort a linked list using insertion sort.

/** * 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) {        if(head == NULL || head->next == NULL) return head;                ListNode *point = new ListNode(0);        ListNode *iter, *tmp, *hold, *prev, *newhead;        point->next = head;        newhead = head->next;        head->next = NULL;                while(newhead){            tmp = newhead;            hold = point;            while(hold->next && hold->next->val <= tmp->val){                hold = hold->next;            }            newhead = newhead->next;            tmp->next = hold->next;            hold->next = tmp;        }        return point->next;    }};

 

Insertion Sort List