Insertion Sort List

插入排序,在原有链表的基础上,只交换数值,不改变链表结构。提交了一次,提示超时,后来发现时代码中有多余的cout语句(调试时加的)。

class Solution {
public:
    ListNode *insertionSortList(ListNode *head) {

        ListNode* ptr;
        ptr=head;

        while(ptr!=0)
        {
            ListNode* p;
            int tmp;
            p=head;

            while(p!=ptr&&ptr->val>p->val)
            {
                p=p->next;
            }

            ListNode* t;
            t=p;


                 while(p!=ptr)
               {
               tmp = t->val;
               t->val=p->next->val;
               p->next->val=tmp;
               p=p->next;
               }

            ptr=ptr->next;
        }
        return head;
    }
};

 

posted @ 2014-04-20 22:13  醉剑客  阅读(106)  评论(0编辑  收藏  举报