/**
* 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
最新推荐文章于 2024-09-29 16:46:50 发布