问:我想编写一种递归方法,该方法对单链表进行排序,并且仅接受一个参数。并且不要编写其他辅助方法来支持此递归方法。
答:我有一个解决方案,不是最快的解决方案,但它尊重条件。想象一下,您的清单是:
类LinkedInt
{
整数
下一个
LinkedInt(int整数)
{
this.integer =整数;
}
}
然后,您可以像这样进行排序:
无效排序(LinkedIntlinkedInt)
{
if(linkedInt == null || linkedInt.next == null)
返回;
sort(linkedInt.next);
LinkedInt current =链接的整数;
温度
while(current.next!= null && current.integer> current.next.integer)
{
temp = current.integer;
current.integer = current.next.integer;
current.next.integer = temp;
当前= current.next;
}
}
它排序,是递归的,它只有一个参数而不依赖于其他方法。这个想法:我们先对队列进行排序,然后对队列进行排序,因此很容易将值推到合适的位置。希望对您有帮助