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

BST可视化正确性问询:节点高度计算与标准答案不符问题

BST结构与高度计算问题排查

核心问题定位

你的结果和标准答案完全反向,大概率是两个原因之一:BST可视化/构建逻辑错误,或者高度定义搞混了(把深度当成高度,或左右子树规则搞反)。

先明确标准规则(按作业常规要求)

1. 字符串比较规则:字典序(A-Z)

各节点字典序排序:Alpha < Bravo < Charlie < Hotel < India < Victor < Xray < Zebra

2. BST插入规则:左子树节点值 < 父节点,右子树节点值 > 父节点(忽略重复节点Zebra)

3. 节点移除规则:

  • 叶子节点直接删除
  • 根节点删除时,选择**右子树最小节点(后继)**替换为新根,原右子树最小节点的位置由其右子节点填补

4. 节点高度标准定义:该节点到其最远叶子节点的路径边数(叶子节点高度为0)

初始BST构建(按插入顺序)

Victor
       /       \
    Hotel       Xray
   /    \         \
Alpha  India      Zebra
   \
    Bravo
       \
        Charlie

移除节点后的最终BST

第一步:移除India(Hotel的右叶子节点)

直接删除,Hotel的右子节点为空。

第二步:移除Victor(根节点)

用后继节点Xray替换为新根,Xray的原右子节点Zebra保留为其右子树;Victor的左子树(Hotel及其子节点)成为Xray的左子树。最终结构:

Xray
       /    \
    Hotel    Zebra
   /
Alpha
   \
    Bravo
       \
        Charlie

按标准定义计算高度

  • Alpha:到最远叶子Charlie的边数为2 → 高度2
  • Bravo:到最远叶子Charlie的边数为1 → 高度1
  • Charlie:叶子节点 → 高度0
    这和你的结果一致,但和标准答案完全相反。

为什么和标准答案不符?

两种可能性:

  1. 作业中的高度定义是「节点到根的路径边数(即深度)」的反向或特殊定义:
    如果作业将高度定义为「最远叶子到该节点的路径边数」,或者把深度的计算逻辑做了调整,会出现标准答案的结果,但这种定义不符合行业通用标准。
  2. 你的BST构建时左右子树规则搞反了(左大右小):
    如果插入时左子树节点值 > 父节点,右子树 < 父节点,初始BST结构会完全反转,移除节点后的结构也会反转,此时Charlie的高度会是2,Alpha的高度是1,和标准答案完全匹配。

结论

你的BST可视化/构建逻辑大概率符合通用标准,但作业的高度定义可能存在特殊要求,或者你搞混了BST的左右子树排序规则。建议先确认作业中明确给出的BST排序规则和高度定义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 04:02:01