树的深度是指树的结点的最大层数,也就是树中从根节点到最远叶子节点的最长路径上的节点数。在二叉树中,树的深度可以通过递归算法来计算,具体方法是:
-
如果当前节点为空,则树的深度为0。
-
对于非空节点,递归计算其左右子树的深度。
-
树的深度等于左右子树深度的最大值加1(当前节点本身)。
例如,对于给定的二叉树,可以通过以下递归函数计算其深度:
public int TreeDepth(TreeNode root) {
if (root == null) return 0;
int leftDepth = TreeDepth(root.left);
int rightDepth = TreeDepth(root.right);
return Math.max(leftDepth, rightDepth) + 1;
}
其中,TreeNode
是二叉树节点的数据结构,通常包含左右子节点和节点值。
需要注意的是,树的深度和树的高度在某些情况下可能不同,树的高度通常指的是根节点到最远叶子节点的最长路径上的节点数,而树的深度则是指树中最大的结点层数。