在只能修改结点指针的前提下,如何对链表进行排序?
在只能修改结点指针的前提下,如何对链表进行排序?谢谢!
[解决办法]
交换指针即可
[解决办法]
至少可以冒泡嘛。
冒泡排序的基本动作是比较并交换相领元素,对于链表中的相邻元素,比较和交换都不难。
相对于数组,唯一不同的是,数组使用下标来计算每一趟交换结束时的位置,而链表需要用一个指针来标记。
另外,楼主的问题也有点怪,从一般意义上讲,链表的排序都是指基于修改指针的排序,那种指针不变仅通过换值来实现的排序才是“奇技淫巧”呢,而且可能效率低,特殊情况下甚至“不可行”(比如在C++语言中而且结点里面保存的是不可拷贝对象的情况下)。