我其他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); } };