算法思想:使用递归
public int getBinaryTreeHeight(Node node){
if(node==null){
return 0;
}
int leftHeight = getBinaryTreeHeight(node.left) + 1;
int rightHeight = getBinaryTreeHeight(node.right) + 1;
return Math.max(leftHeight, rightHeight);
}
算法解析:分别递归左树和右树,递归到叶子节点时返回0,递归回溯时值+1,不断累积回溯的深度,每层回溯返回左树和右树的最大值,最后返回的就是二叉树的深度。