59_leetcode_Insertion Sort List

来源:互联网 发布:武汉少儿编程 编辑:程序博客网 时间:2024/05/14 15:12

Sort a linked list using insertion sort.

1:插入排序;2:将链表中的每一个节点插入到已经排号的序列中

    ListNode *insertionSortList(ListNode *head)    {        if(head == NULL || head->next == NULL)        {            return head;        }                ListNode* newHead = head;        ListNode* index = newHead;        ListNode* nextNode = head->next;        newHead->next = NULL;                ListNode* preNode = NULL;        ListNode* curNode = newHead;                while(nextNode)        {            ListNode* tempNode = nextNode->next;                        while(curNode && curNode->val < nextNode->val)            {                preNode = curNode;                curNode = curNode->next;            }            if(curNode == NULL)            {                index->next = nextNode;                index = index->next;                index->next = NULL;            }            else if(curNode == newHead)            {                nextNode->next = newHead;                newHead = nextNode;            }            else            {                nextNode->next = curNode;                preNode->next = nextNode;            }                        preNode = NULL;            curNode = newHead;            nextNode = tempNode;                    }                return newHead;    }


0 0