首先,我们要先知道二叉树通常遍历的顺序:
- 先序--根左右
- 中序--左中右
- 后序--左右中
- 层序遍历--从上至下,从左到右
然后,通过上面可以总结出用本题目的求解过程:
- 确定树的根节点
- 求解树的子树
- 对二叉树的左、右孩子分别进行步骤1、2,直到求出二叉树结构为止。
最后,实现代码如下:
package tree;
public class BinaryTree {
private TreeNode root;
public BinaryTree(){
root = null;
}
//后序遍历方法递归实现
public void postOrder(TreeNode localRoot){
if(localRoot != null){
postOrder(localRoot.left);
postOrder(localRoot.right);
System.out.println(localRoot.data + " ");
}
}
public void postOrder(){
this.postOrder(this.root);
}
public void initTree(int []preOrder, int []inOrder){
this.root = this.initTree(preOrder, 0, preOrder.length - 1, inOrder, 0, inOrder.length - 1);
}
//传入先序数组和中序的开始和结束索引
publ