public class TreeNodeTest {
TreeNodeTest left;
TreeNodeTest right;
int val;
TreeNodeTest(int v){
this.val = v;
}
public static void main(String[] args) {
TreeNodeTest root = new TreeNodeTest(1);
TreeNodeTest left = new TreeNodeTest(2);
TreeNodeTest right = new TreeNodeTest(3);
TreeNodeTest left1 = new TreeNodeTest(4);
TreeNodeTest left2 = new TreeNodeTest(5);
// 构建二叉树
root.left = left;
root.right = right;
left.left = left1;
left.right = left2;
System.out.println("二叉树深度为:"+getDeep(root));
query(root);
}
// 遍历获取
private static void query(TreeNodeTest root) {
if(root == null){
return;
}
// System.out.println(root.val); //前序遍历:先遍历根结点,然后遍历左子树,最后遍历右子树。
query(root.left);
// System.out.println(root.val);// 中序遍历:先遍历左子树,然后遍历根结点,最后遍历右子树。
query(root.right);
System.out.println(root.val);// 后序遍历:先遍历左子树,然后遍历右子树,最后遍历根节点。
}
// 获取深度
private static int getDeep(TreeNodeTest root) {
if(root == null){
return 0;
}
int left = getDeep(root.left);
int right = getDeep(root.right);
return left>right?left+1:right+1;
}
}
java 二叉树最大深度 和 (前序、中序、后序)三种遍历实现
最新推荐文章于 2022-12-18 16:46:42 发布