💡
原文中文,约1000字,阅读约需3分钟。
📝
内容提要
给定一棵二叉树,求其最小深度,即从根节点到最近叶子节点的最短路径上节点的数量。解题思路为递归:若树为空返回0;若左子树为空,返回右子树的最小深度加1;若右子树为空,返回左子树的最小深度加1;若左右子树均不为空,返回左右子树最小深度的较小值加1。
🎯
关键要点
- 给定一棵二叉树,求其最小深度,即从根节点到最近叶子节点的最短路径上节点的数量。
- 解题思路为递归:若树为空返回0;若左子树为空,返回右子树的最小深度加1;若右子树为空,返回左子树的最小深度加1;若左右子树均不为空,返回左右子树最小深度的较小值加1。
- 参考代码中使用了C++11的新关键字nullptr,建议使用nullptr替代NULL的宏定义。
❓
延伸问答
如何计算二叉树的最小深度?
通过递归计算,从根节点到最近叶子节点的最短路径上节点的数量。
如果二叉树为空,最小深度是多少?
如果树为空,最小深度返回0。
当左子树为空时,如何计算最小深度?
返回右子树的最小深度加1。
当右子树为空时,最小深度的计算方式是什么?
返回左子树的最小深度加1。
如果左右子树均不为空,如何求最小深度?
返回左右子树最小深度的较小值加1。
在C++中,如何处理nullptr和NULL的区别?
建议使用nullptr替代NULL,二者在正常使用中是等价的。
➡️