您的位置:首页 > 职场人生

59_leetcode_Insertion Sort List

2014-06-20 07:24 260 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息