二叉树的最小深度

    xiaoxiao2021-04-18  53

    1、问题描述

          给定一个二叉树,找出其最小深度。二叉树的最小深度为根节点到最近叶子节点的距离。样例:给出一棵如下的二叉树:

            1

         /     \ 

       2       3

              /    \

            4      5  

    这个二叉树的最小深度为 2

    2、实现思路

          如果无根节点,深度为0;只有根节点,深度为1;依次遍历每一颗子树,记录深度,比较得最小深度。

    3、代码

    /**  * Definition of TreeNode:  * class TreeNode {  * public:  *     int val;  *     TreeNode *left, *right;  *     TreeNode(int val) {  *         this->val = val;  *         this->left = this->right = NULL;  *     }  * }  */ class Solution { public:     /**      * @param root: The root of binary tree.      * @return: An integer      */     int minDepth(TreeNode *root) {         // write your code here          if(root==NULL) return 0;          if(root->left==NULL&&root->right==NULL) return 1;          int leftDepth=minDepth(root->left)+1;          if(leftDepth==1)  leftDepth=10000;          else leftDepth=leftDepth;          int rightDepth = minDepth(root -> right)+1;          if(rightDepth == 1)  rightDepth=10000;          else rightDepth=rightDepth;          if(leftDepth<rightDepth) return leftDepth;          else return rightDepth;     } };

    4、感想

         注意题目要求是从根节点到叶子节点的最小深度,若此路径深度为1,即只有根节点,不能作为最小深度,赋予其一个很大的数,不能影响深度的比较。

    转载请注明原文地址: https://ju.6miu.com/read-674594.html

    最新回复(0)