[编程题]minimum-depth-of-binary-tree

[编程题]minimum-depth-of-binary-tree

💡 原文中文,约1000字,阅读约需3分钟。
📝

内容提要

给定一棵二叉树,求其最小深度,即从根节点到最近叶子节点的最短路径上节点的数量。解题思路为递归:若树为空返回0;若左子树为空,返回右子树的最小深度加1;若右子树为空,返回左子树的最小深度加1;若左右子树均不为空,返回左右子树最小深度的较小值加1。

🎯

关键要点

  • 给定一棵二叉树,求其最小深度,即从根节点到最近叶子节点的最短路径上节点的数量。
  • 解题思路为递归:若树为空返回0;若左子树为空,返回右子树的最小深度加1;若右子树为空,返回左子树的最小深度加1;若左右子树均不为空,返回左右子树最小深度的较小值加1。
  • 参考代码中使用了C++11的新关键字nullptr,建议使用nullptr替代NULL的宏定义。

延伸问答

如何计算二叉树的最小深度?

通过递归计算,从根节点到最近叶子节点的最短路径上节点的数量。

如果二叉树为空,最小深度是多少?

如果树为空,最小深度返回0。

当左子树为空时,如何计算最小深度?

返回右子树的最小深度加1。

当右子树为空时,最小深度的计算方式是什么?

返回左子树的最小深度加1。

如果左右子树均不为空,如何求最小深度?

返回左右子树最小深度的较小值加1。

在C++中,如何处理nullptr和NULL的区别?

建议使用nullptr替代NULL,二者在正常使用中是等价的。

➡️

继续阅读