插入排序進行鏈表排序

/**
 * 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 || !head->next) return head;
         ListNode dummyHead(0), *p;
         dummyHead.next = insertionSortList(head->next);
         p = &dummyHead;

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

         return dummyHead.next;
     }
 };

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章