147. Insertion Sort List

来源:互联网 发布:android数据库操作 编辑:程序博客网 时间:2024/06/05 12:47

Sort a linked list using insertion sort.

/** * 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) {        //无论什么都要判断是否为NULLif(head==NULL) return NULL;ListNode *result=new ListNode(0);    ListNode *q=result->next=new ListNode(head->val);    ListNode *temp=q;ListNode *p=head->next;while(p){if(q->val>=p->val){result->next=new ListNode(p->val);result->next->next=q;}else{while(q!=NULL&&p->val>q->val){temp=q;q=q->next;}temp->next=new ListNode(p->val);temp->next->next=q;}p=p->next;q=result->next;}result=result->next;return result;    }};


原创粉丝点击