Leetcode 147. 对链表进行插入排序

/**
 * 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) {
        if(!head) return head;
        ListNode* p=new ListNode(0),*q,*t;
        p->next=head,head=head->next,p->next->next=NULL;
        while(head){
            q=p;
            while(q->next && q->next->valval) q=q->next;
            t=q->next,q->next=head,head=head->next,q->next->next=t;
        }
        q=p->next;
        delete p;
        return q;
    }
};

你可能感兴趣的:(LeetCode)