美文网首页
【LeetCode】 二叉树的最小深度

【LeetCode】 二叉树的最小深度

作者: MyyyZzz | 来源:发表于2019-04-08 17:38 被阅读0次

    题目描述:

    B68C051A-0147-4A80-9E79-3201547B48F4.png

    解题思路:

    递归;
    第一步:确定终止条件,即root==NULL返回0;
    第二步:返回值,即返回当前节点的最小深度
    第三步:本级需要做什么,即当左右节点都不为空时,返回左右节点的最小深度中的小值加1, 当左右节点存在NULL时,返回左右节点最小深度中的大值加1(因为为NULL的节点的最小深度为0);

    代码:

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        int minDepth(TreeNode* root) {
            if(!root)
                return 0;
            int left = minDepth(root->left);
            int right = minDepth(root->right);
            if(left && right)
                return min(left, right)+1;
            else
                return max(left, right)+1;
        }
    };
    

    相关文章

      网友评论

          本文标题:【LeetCode】 二叉树的最小深度

          本文链接:https://www.haomeiwen.com/subject/goupiqtx.html