You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

二叉树中节点高度为负值是什么含义?height函数返回-1疑问

二叉树height函数返回-1的含义解释

这段代码里的-1不是表示二叉树的实际高度,而是作为一个异常/错误标记来使用,正常二叉树的高度不可能为负数。

从你给出的代码片段来看,这个height函数大概率是在计算高度的同时,额外做了某种合法性检查(最常见的场景是判断二叉树是否为平衡二叉树):

  • 递归过程中,如果某个子树返回了-1,说明该子树已经不符合检查条件(比如平衡二叉树要求左右子树高度差不超过1,若超过就返回-1),当前节点直接向上传递这个标记,终止后续无效计算。
  • 只有当所有子树都符合条件时,函数才会返回正常的高度值(通常是左右子树高度的最大值加1)。

举个完整的常见实现示例,你就能更清楚:

int height(TreeNode root) {
    if (root == null) return 0; // 空树高度定义为0
    int left = height(root.left);
    int right = height(root.right); 
    if(left == -1 || right == -1) return -1; // 子树已不符合条件,直接返回标记
    if (Math.abs(left - right) > 1) return -1; // 当前树高度差过大,标记为不符合
    return Math.max(left, right) + 1; // 返回正常高度
}

简单来说,这里的-1是个“信号值”,用来告诉上层递归:当前路径下的子树不满足预设条件,不用继续计算高度了。

内容的提问来源于stack exchange,提问作者Amanda James

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 18:57:17