minimum-depth-of-binary-tree 最小树深度

题目:

求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。 Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.

示例1:

输入: (1,2,3,4,5)  输出:2

代码:

 1 /**
 2  * struct TreeNode {
 3  *    int val;
 4  *    struct TreeNode *left;
 5  *    struct TreeNode *right;
 6  * };
 7  */
 8 
 9 class Solution {
10 public:
11     /**
12      * 
13      * @param root TreeNode类 
14      * @return int整型
15      */
16     int run(TreeNode* root) {
17         if( root == NULL)
18             return 0;
19         if( root->left == NULL && root->right == NULL)
20             return 1;
21         // 当左/右子树为空时,要找到该子树深度
22         if( root->left == NULL || root->right == NULL)
23             return max(run(root->left), run(root->right))+1;
24         return min(run(root->left), run(root->right))+1;
25     }
26 };

我的笔记:

  利用递归的方法找到最小深度,但会有左/右子树为空的情况,会干扰比较,所以需要单独将这种情况做处理,即:找到该子树的深度。

上一篇:实验一 使用sklearn的决策树实现iris鸢尾花数据集的分类


下一篇:559. Maximum Depth of N-ary Tree