天天看点

LeetCode:Insertion Sort List

Sort a linked list using insertion sort

ListNode *insertionSortList(ListNode *head) 
 {
	 if(!head || !head->next)
		 return head;

	 ListNode* result =head;
	 ListNode* p = head;
	 ListNode* pre =NULL;

	 head = head->next;
	 result->next = NULL;
	 while(head != NULL)
	 {
		 p = result;
		 while(p != NULL && head->val > p->val)
		 {
			 pre=p;
			 p=p->next;
		 }
		 if(p == result)
		 {
			 result = head;
			 head = head->next;
			 result -> next = p;
		 }
		 else
		 {
			 pre->next = head;
			 head = head->next;
			 pre->next->next = p;
		 }
	 }
	 return result;
 }
           

已AC  276ms