/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* insertionSortList(ListNode* head) {
if (head == NULL)
return NULL;
ListNode*L = new ListNode(0);//設置一個頭結點,便於插入排序;
ListNode*p = NULL, *q = NULL,*s=NULL;
/*L->next = head;*/
while (head != NULL)
{
s = L;//記住插入位置的前驅便於插入
q = L->next;//每次插入從第一個結點開始
p = head;//插入的結點
head = head->next;//下一個插入的結點
while (q != NULL&&p->val > q->val)
{
s = q;
q = q->next;
}
s->next = p;
p->next = q;
}
return L->next;
}
};
147. Insertion Sort List
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.