参考链接:
·
公式:
定义函数 height,用于计算二叉树中的任意一个节点 p 的高度:
只能先递归向下,然后回溯,回溯时累加求出高度;
公式就是:
当前node节点的高度=【(node节点的左子树的高度) VS (node节点的右子树的高度)的最大值】+1
·
代码示例:
/**
* 求出指定节点的高度
* 只能先递归向下,然后回溯,回溯时累加求出高度;
* 公式就是:当前node节点的高度=【(node节点的左子树的高度)和(node节点的右子树的高度)的最大值】+1
* @param node
*/
public int findHeightByNode(TreeNode node) {
//公式:当前node节点的高度=【(node节点的左子树的高度)和(node节点的右子树的高度)的最大值】+1
if (node == null) {
return 0; //叶子结点的左右子节点为null,直接返回0,回溯之后叶子节点的高度为1;
}
TreeNode leftNode = node.left; //左子结点
TreeNode rightNode = node.right; //右子节点
int height = Math.max(findHeightByNode(leftNode), findHeightByNode(rightNode))+1;
return height;
}