Minimum Depth of Binary Tree
2016-06-10 17:17
786 查看
c++
/** * 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 == nullptr) return 0; reachLeaf(root, 0); return min_depth; } private: int min_depth = INT_MAX; void reachLeaf(TreeNode* root, int cum_depth) { cum_depth++; if (root->left == nullptr && root->right == nullptr) { if (cum_depth < min_depth) min_depth = cum_depth; return; } if (root->left != nullptr) reachLeaf(root->left, cum_depth); if (root->right != nullptr) reachLeaf(root->right, cum_depth); } };
python
# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution(object): def __init__(self): self.min_depth = sys.maxint def minDepth(self, root): """ :type root: TreeNode :rtype: int """ if not root: return 0 self.reachLeaf(root, 0) return self.min_depth def reachLeaf(self, root, cum_depth): cum_depth += 1 if not root.left and not root.right: if cum_depth < self.min_depth: self.min_depth = cum_depth return if root.left: self.reachLeaf(root.left, cum_depth) if root.right: self.reachLeaf(root.right, cum_depth)
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C语言自动生成enum值和名字映射代码
- C语言练习题:自由落体的小球简单实例
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中进制知识汇总
- C语言判断一个数是否是2的幂次方或4的幂次方
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- C语言实现选择排序、冒泡排序和快速排序的代码示例