LeetCode | Insertion Sort List(插入法排序連結串列)
阿新 • • 發佈:2019-01-23
Sort a linked list using insertion sort.
題目解析:
連結串列思路不難,但是指標比較麻煩,要細心才行。這道題讓我調了半天,原來是一個指標賦錯了,因為用的變數p和q,導致很長時間才發現……一些規則還是要注意的,變數儘量用能區分的名稱。
class Solution { public: ListNode *insertionSortList(ListNode *head) { if(head == NULL) return head; ListNode *p = head; while(p->next){ if(p->next->val < p->val){ ListNode *q = p->next; p->next = q->next; head = insertNode(head,q); }else p = p->next; } return head; } ListNode *insertNode(ListNode *head,ListNode *p){ if(p->val < head->val){ p->next = head; head = p; }else{ ListNode *q = head; while(q->next->val < p->val) q = q->next; p->next = q->next; q->next = p; } return head; } };