Insertion Sort List

不知道为什么{3,4,1}

就是通不过。

/**
 * 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) {
        
        ListNode *nextnode;
        ListNode *p;
        ListNode *t;
        ListNode *preNode=NULL;
        for(p=head;p!=NULL;p=p->next)
        {
            nextnode=p->next;
            if(nextnode==NULL) continue;
             
            for(t=head;t!=p->next&&nextnode->val > t->val;t=t->next)
            {
                preNode=t;
            }
                if(preNode!=NULL){
                    if(preNode==p);
                    else
                    {
                    p->next=nextnode->next;
                    nextnode->next=preNode->next;
                    preNode->next=nextnode;
                    }
                }
            else
            {
                p->next=nextnode->next;
                nextnode->next=head;
                head=nextnode;
            }
            preNode==NULL;
        }
        return head;
    }
};

 

posted @ 2014-07-11 13:40  ian在这儿  阅读(198)  评论(1编辑  收藏  举报