summary : 面试中经常会让你写出三种遍历中的一种的非递归版本,通常是中序遍历和后序遍历,前序 遍历很少,因为前序遍历毕竟比较简单。 以我的智商,没有做过的话,只能想出来前序遍历的非递归版本,而中序遍历和后序遍历则 是绞尽脑汁都想不出来。最终参考了别人的做法,才理解并写出来了,算是记忆,估计再过 一段时间我又忘了。不过到时可以翻开我的这篇文章看看。 前序遍历 这个是最简单的。用一个栈存储节点,先输出栈顶元素的值,再把左右孩子的节点入栈(如 果有的话)。由于在遍历的时候是先遍历左子树再遍历右子树,那么反过来,在入栈的时候, 就先把右孩子入栈,再把左孩子入栈。 中序遍历 有难度。得先从...
阅读更多2/24/2014