Geek

博客园 首页 新随笔 联系 订阅 管理

题目描述
使用插入排序对链表进行排序。
示例1
输入
复制
{30,20,40}
返回值
复制



#define Node ListNode
#define null NULL

class Solution {
public:
    /**
     * 
     * @param head ListNode类 
     * @return ListNode类
     */
    ListNode* insertionSortList(ListNode* head) {
        if(head==null || head->next==null) return head;
        // write code here
        Node dummy(0);
        Node *p,*q,*t;
        while(head) {
            p = &dummy;
            q = p->next;
            t = head;
            head = head->next;
            while(q && q->val < t->val) {
                p = p->next;
                q = q->next;
            }
            t->next = q;
            p->next = t;
        }
        return dummy.next;
    }
    
    
};

posted on 2021-01-25 00:45  .geek  阅读(112)  评论(0编辑  收藏  举报