算法思想:
首先因为后序遍历的时候遍历完某个结点的左子树会返回这个结点再遍历他的右子树,所以需要设计一个标记(默认为0)来表示是否访问了左子树(左子树存在的情况下)。
第一步:把根节点入栈
第二步:当栈不为空时,循环。分析栈顶元素。根据栈顶元素的属性不同分为三种情况:`
Ⅰ:入栈栈顶元素左子树,标记改为1,条件为:标记为0。
Ⅱ:入栈栈顶元素右子树,标记改为2,条件为:标记为1或者左子树 为空。
Ⅲ:栈顶元素出栈并输出,条件为:标记为2或者左右子树都为空。
stack.push(BT.Root); //根节点入栈
while(stack.