LeetCode_对链表进行排序

题目描述:

                  Sort a linked list in O(n log n) time using constant space complexity.

            思路1:要实现O(nlogn)的话可以考虑使用归并排序,这里有个问题就是寻找中间节点。寻找中间节点的时候,用快慢指针的时候,有两种写法,一种会出现栈溢出,要特别注意。注意事项在代理中有解释。同样这样每次找链表的中间节点的时候,都要遍历一遍。

           思路2:就是开始的时候,就遍历一遍,用一个ArrayList装进行,然后Collection.sort对其排序就好了,但是这里要对比较器进行改写。排好序之后,再遍历改写指针就好了。

      代码: