二叉树高度到底怎么算?一文说清程序员都懂的秘密

👤 综合探索者 📂 默认 📅 2026-02-24 05:10 👁 2 阅读

很多人刷LeetCode时看到"求树的高度"就懵圈,高度?深度?傻傻分不清楚。有的题解说是3,有的说是4,到底哪个对?别急,看完这篇你就全明白了。

其实区别就在于一个细节:空树的高度是-1还是0?从根节点到最远叶子节点的边数叫高度,从根节点往下数层数也行,但起点不一样结果就差1。关键是看题目怎么定义,多数情况下根节点算第1层,空树高度为-1或者0,记住这个就没问题了。

举个栗子,只有一个节点的树,高度是0还是1?这完全取决于约定。实际写代码时,递归公式通常是 `height = max(leftHeight, rightHeight) + 1`,叶子节点返回0或1,根据题意来就行。面试时先跟面试官确认清楚,别一上来就闷头写。 最后送个口诀:递归到底看终止,空树高度先定义,左右子树取最大,加一就是父节点高。记住了吗?

你遇到过哪些"定义不一致"的坑?评论区聊聊,看看谁的解法更优雅!

标签: 二叉树的高度怎么看