单链表的排序
问题简述
给定一个节点数为n的无序单链表,对其按升序排序。
思路1:归并排序
细节:
找中点的时候,定位到中点的前一个位置,保存中点位置后切断,否则会无限循环;
递归的 base case:最好判断为空节点或只有一个节点时就返回;
思路2:快排(超时)
链表的快排比数组好写一点,因为链表可以方便的移动节点,而不需要要交换;
默认使用头结点作为
pivot
,因此部分用例无法通过(超过最大递归);对链表来说似乎没有很好的办法来确定
pivot
;
Last updated
问题简述
给定一个节点数为n的无序单链表,对其按升序排序。
思路1:归并排序
细节:
找中点的时候,定位到中点的前一个位置,保存中点位置后切断,否则会无限循环;
递归的 base case:最好判断为空节点或只有一个节点时就返回;
思路2:快排(超时)
链表的快排比数组好写一点,因为链表可以方便的移动节点,而不需要要交换;
默认使用头结点作为 pivot
,因此部分用例无法通过(超过最大递归);
对链表来说似乎没有很好的办法来确定 pivot
;
Last updated