Leetcode Minimum Depth of Binary Tree (面试题推荐)

我其他leetcode结题代码见我github https://github.com/xindoo/leetcode


计算树的最小深度  很简单的一道题,只需要遍历一次树,到叶子节点的时候计算一下深度和当前最小深度比较,保存最小值就行。

我在这用了一个全局变量 mindepth。总感觉我这代码写的不够简练,求更精简的方法。

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



xindoo CSDN认证博客专家 Linux 分布式 Spring
一个有趣有料的程序猿,9年技术博主,曾在阿里做过3年运维相关工作,现为某厂Java后端开发工程师,拥有丰富的挖坑踩坑填坑背锅经验[狗头],专注于Java,对操作系统、网络、编译原理也有涉猎,目前正在写一门简易的脚本语言。
©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值