【lintcode】——链表插入排序-Insertion Sort List

描述

用插入排序对链表排序

样例

Given 1->3->2->0->null, return 0->1->2->3->null

思路

先看下插入算法 百度-插入算法
这道题不难,理解插入算法就会写了
创建一个新链表,从原链表的head结点开始,用插入算法将结点插入到新链表中

代码实现(c++)

ListNode *insertionSortList(ListNode *head) {
        ListNode *dummy = new ListNode(0);
        while(head != NULL) {
            ListNode *temp = dummy;
            ListNode *next = head->next;
            while(temp->next != NULL && temp->next->val < head->val) {
                temp = temp->next;
            }
            head->next = temp->next;
            temp->next = head;
            head = next;
        }
        return dummy->next;
    }

你可能感兴趣的:(lintcode)