本文共 683 字,大约阅读时间需要 2 分钟。
Sort a linked list using insertion sort.
/** * 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 *pseud_head = new ListNode(-1); ListNode *p = head->next; head->next = NULL; pseud_head->next = head; while (p) { ListNode *hh = pseud_head; ListNode *q = p->next; while (hh->next && p->val > hh->next->val) { hh = hh->next; } p->next = hh->next; hh->next = p; p = q; } head = pseud_head->next; delete pseud_head; return head; }};定义个伪头指针,方便操作。
转载地址:http://oelji.baihongyu.com/