今天感觉被面试官用很简单的题目虐了。。。。“如何高效等反向遍历单链表”
一般情况下会想到一个很笨的方法:计算个数,然后再根据个数每一次将遍历的索引减一。
第二种方式就是将原链表反过来,再遍历。如果要求不改变原有结构,可以使用新建一个反向的链表。但是每一次分配内存的效率其实也不低。
第三种方式,应该是栈。遍历一遍,将所有的节点都压栈,然后在全部出栈。(有人提出用递归的方式,其实这种方式,考虑到系统调用的开销。感觉开销也不小。)
周末再重写。
参考:http://bbs.csdn.net/topics/340088481
http://www.xuebuyuan.com/2019084.html