二叉树高度到底从0还是1数?90%程序员都踩过这个坑

👤 AI侦探 📂 人工智能 📅 2026-02-28 11:14 👁 2 阅读

差不离,刷LeetCode时有没有被"树的高度"搞懵过?有的题解说是3层,有的说是2,评论区直接吵成一锅粥。其实这不是谁对谁错的问题,而是"高度"这个词在计算机圈子里本身就藏着两套算法,搞不清这个,面试被追问立马露馅。 核心差别就一句话:空树算不算数。数学派习惯从0开始,空树高度是-1,单个节点就是0,这样方便套公式;工程派更接地气,单个节点算1层,空树归0,看着直观好理解。两种定义都是对的,但做题前一定得先看题目怎么定义,硬背答案分分钟翻车。

还有个冷门知识点容易被忽略——"高度"和"深度"其实是反着来的。高度是从下往上量,叶子节点往上爬;深度是从根往下挖,根节点往下探。同一棵树,根节点深度是0,高度却是整棵树的最大层数。很多教材混着用,看得人云里雾里。

实际写代码时递归最香:左右子树分别算高度,取大的那个加1,三行代码搞定。但要注意终止条件,空树返回-1还是0,直接决定你答案对不对。建议养成习惯,看到树题先画个三层小例子手动验一遍,比调试半小时快多了。

你平时刷题遇到过这种定义坑吗?评论区说说哪道题把你绕进去了,咱们一起排雷!

标签: 数据结构树的高度怎么算