LintCode 链表插入排序

来源:互联网 发布:sql可以装在d盘吗 编辑:程序博客网 时间:2024/05/01 22:29

题目描述:
用插入排序对链表排序

样例
Given 1->3->2->0->null, return 0->1->2->3->null。

思路分析:

感觉是链表的进阶题。
写完这道题,后面题都很简单啦。

ac代码:

/** * Definition of ListNode * class ListNode { * public: *     int val; *     ListNode *next; *     ListNode(int val) { *         this->val = val; *         this->next = NULL; *     } * } */class Solution {public:    /**     * @param head: The first node of linked list.     * @return: The head of linked list.     */    ListNode *insertionSortList(ListNode *head)     {        // write your code here        ListNode *r,*dummy;        r=new ListNode(0);        //dummy=head;   //记录原链表的头节点。        while(head!=NULL)        {            ListNode *node=r;  //遍历 r链表。            while(node->next!=NULL && node->next->val<head->val)            {                node=node->next;            }            ListNode *temp=head->next; //先保存下来 head 的下一个节点。            head->next=node->next;            node->next=head;            head=temp;        }        return r->next;    }};
0 0
原创粉丝点击