主要使用了一个方向值orien,记录在二叉树中搜索时的路径方向,比如由父节点到左子树时orien值为1,这样按照严格的行走规则,在一个while循环里就能遍历整棵树。
一个简单的例子:
一棵树为: 8
4 12
2 6 10 14
1 3 5 7 9 11 13 15
那么程序将采用一个相当于后序遍历的顺序对树进行遍历,对于一个节点,将先搜索左子树,再搜索右子树,然后输出该节点的值。根据orien值的不同,对遍历的下一步走向进行
选择,具体看printTree中的while循环。对于上面这棵树,输出顺序为:1 3 2 5 7 6 4 9 11 10 13 15 14 12 8。
程序没有测试一些特殊情况,可能存在bug,欢迎指正;若有啥问题欢迎交流!