Sort List

ListNode sortList(ListNode head) {

//切分至最小单位,仅剩一个元素时。

if(!head||!head->next) return head;

ListNode s=head, q=head;

//q->next->next不为空时,s指向中部

while(q->next&&q->next->next){

q=q->next->next;

s=s->next;

}

//断开链表!!!!!!!!

q=s;

s=s->next;

q->next=nullptr;

return merge(sortList(head),sortList(s));

}

Last updated

Was this helpful?