一:解题思路
Time:O(n^2),Space:O(1)
二:完整代码示例 (C++版和Java版)
C++:
class Solution { public: ListNode* insertionSortList(ListNode* head) { if (head == NULL || head->next == NULL) return head; ListNode* dummy = new ListNode(0); ListNode* p = NULL; ListNode* cur = head; ListNode* next = NULL; while (cur != NULL) { next = cur->next; p = dummy; while (p->next != NULL && p->next->val <= cur->val) p = p->next; cur->next = p->next; p->next = cur; cur = next; } return dummy->next; } };
Java:
class Solution { public ListNode insertionSortList(ListNode head) { if(head==null || head.next==null) return head; ListNode dummy=new ListNode(0); ListNode p=null; ListNode cur=head; ListNode next=null; while (cur!=null) { next=cur.next; p=dummy; while(p.next!=null && p.next.val<=cur.val) p=p.next; cur.next=p.next; p.next=cur; cur=next; } return dummy.next; } }
原文:https://www.cnblogs.com/repinkply/p/12814690.html