给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
题解:找出最小深度也就是找出根节点相对全部叶子结点的最小高度,在这也表明了根节点的高度是变化的,相对差别的叶子结点有差别的高度。
代码如下:
- class Solution {
- public:
- int minDepth(TreeNode* root) {
- if(NULL == root) return 0;
- if(NULL == root->left && NULL!= root->right) return 1+minDepth(root->right);
- if(NULL != root->left && NULL== root->right) return 1+minDepth(root->left);
- return 1+min(minDepth(root->left),minDepth(root->right));
- }
- };
复制代码 注意:
在树形数据结构中,叶子节点(leaf node)是没有子节点的节点。换句话说,叶子节点是树中没有任何子节点的终端节点。
在解题时要注意无左子树或无右子树的情况,若不考虑得到的最小深度肯定是1,由于左子树或右子树为NULL时高度为0,那根节点高度肯定是1。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |