碰到链表排序的问题了,想不出来有效的解决方法。
看到网友介绍,链表排序主要有如下2种:1、只交换值 ,此问题较为简单 2、交换节点,这个一不小心就弄错了。
自己想到一种解法:首先,遍历链表,取出每个节点的值,放入数组里面,然后对数组排序,再把数组里面的值依次放入链表中。
可是这里面存在几个问题:1、数组无法事先确定大小,因为链表不是固定长度的(动态增长是链表的优势)。
2、这是以空间换取时间的方法,可能方便排序,还不一定能够减少时间复杂度。
好吧,先记录一下,再想想看……
碰到链表排序的问题了,想不出来有效的解决方法。
看到网友介绍,链表排序主要有如下2种:1、只交换值 ,此问题较为简单 2、交换节点,这个一不小心就弄错了。
自己想到一种解法:首先,遍历链表,取出每个节点的值,放入数组里面,然后对数组排序,再把数组里面的值依次放入链表中。
可是这里面存在几个问题:1、数组无法事先确定大小,因为链表不是固定长度的(动态增长是链表的优势)。
2、这是以空间换取时间的方法,可能方便排序,还不一定能够减少时间复杂度。
好吧,先记录一下,再想想看……