lintcode-链表插入排序

来源:互联网 发布:悟空源码 编辑:程序博客网 时间:2024/05/17 23:06

用插入排序对链表排序

样例

Given 1->3->2->0->null, return 0->1->2->3->null

/** * Definition of ListNode * class ListNode { * public: *     int val; *     ListNode *next; *     ListNode(int val) { *         this->val = val; *         this->next = NULL; *     } * } */class Solution {public:        ListNode *insertionSortList(ListNode *head) {        if(!head)            return nullptr;        ListNode *dummy=new ListNode(0);            ListNode *temp=nullptr;                while(head){     //head节点插入dummy链表中            temp=dummy;  //temp指向dummy的头节点            ListNode *next=head->next;            while(temp->next!=nullptr&&temp->next->val<head->val) //寻找插入点                temp=temp->next;            head->next=temp->next;              temp->next=head;            head=next;        }        temp=dummy;        dummy=dummy->next;        free(temp);        return dummy;    }};


0 0
原创粉丝点击