[leetcode] Insertion Sort List

来源:互联网 发布:mac 邮件储存位置 编辑:程序博客网 时间:2024/06/08 13:29

题目:

Insertion Sort List

 Total Accepted: 10021 Total Submissions: 40511My Submissions

Sort a linked list using insertion sort.

Have you been asked this question in an interview? 


class Solution {public:ListNode *insertionSortList(ListNode *head){if (head == NULL || head->next == NULL) return head;//设置当前遍历指针ListNode * current = head->next;head->next = NULL;//插入排序,head第一个元素就已经排好序ListNode dummy(INT_MIN); dummy.next = head;//小技巧,方便处理while (current != NULL){insert(&dummy, current);//循环插入,时间复杂度O(n2)}return dummy.next;}//插入node到list中,并且设置node为下一个节点void insert(ListNode * list, ListNode *  & node){if (node == NULL) return;//查找插入位置while (list->next != NULL){if (list->next->val >= node->val)break;//查找合适的位置list = list->next;}//这四行代码顺序很重要ListNode * next = list->next;list->next = node;node = node->next;list->next->next = next;return;}};



0 0
原创粉丝点击