111、二叉树的最小深度

打印 上一主题 下一主题

主题 978|帖子 978|积分 2934

给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。


题解:找出最小深度也就是找出根节点相对全部叶子结点的最小高度,在这也表明了根节点的高度是变化的,相对差别的叶子结点有差别的高度。
代码如下:
  1. class Solution {
  2. public:
  3.     int minDepth(TreeNode* root) {
  4.         if(NULL == root) return 0;
  5.         if(NULL == root->left && NULL!= root->right) return 1+minDepth(root->right);
  6.         if(NULL != root->left && NULL== root->right) return 1+minDepth(root->left);
  7.         return 1+min(minDepth(root->left),minDepth(root->right));  
  8.     }
  9. };
复制代码
注意:
在树形数据结构中,叶子节点(leaf node)是没有子节点的节点。换句话说,叶子节点是树中没有任何子节点的终端节点。
在解题时要注意无左子树或无右子树的情况,若不考虑得到的最小深度肯定是1,由于左子树或右子树为NULL时高度为0,那根节点高度肯定是1。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

天空闲话

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表