利用python 完成leetcode111 二叉树的最小深度
2019-02-26 23:40
561 查看
给定一个二叉树,找出其最小深度。
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回它的最小深度 2.
思路
递归即可
当左子树为空时,左侧没有叶子节点,无视左侧
当右子树为空时,右侧没有叶子节点,无视右侧
都空时,此节点为叶子节点 return 1
都不空时,计算每个子树到其根节点最近的叶子节点的距离,选最近的那个
代码
def minDepth(self, root: TreeNode) -> int: if root == None:return 0 if root.right == None and root.left == None:return 1 if root.right == None:return self.minDepth(root.left)+1#找到左子树中最近的叶子节点的距离 if root.left == None:return self.minDepth(root.right)+1#找到右子树中最近的叶子节点的距离 a = self.minDepth(root.left)+1 b = self.minDepth(root.right)+1 return min(a,b)#返回最近的距离
相关文章推荐
- 利用python 完成leetcode 114 二叉树展开为链表
- [LeetCode-111] Minimum Depth of Binary Tree (二叉树最小深度)
- [LeetCode 111] - 二叉树的最小深度 (Minimum Depth of Binary Tree)
- 利用python 完成 leetcode 209 长度最小的子数组
- leetcode之二叉树类之二叉树深度系列-----104/111/110/108/109 二叉树最大/最小深度/AVL树的判断和由有序序列生成(牵扯分治相关,OJ105/106)
- LeetCode:111_Minimum Depth of Binary Tree | 二叉树的最小深度 | Easy
- 利用python 完成leetcode 120 三角形最小路径和
- leetcode 111-二叉树最小深度
- 利用python 完成 leetcode 331 验证二叉树的前序序列化
- LeetCode-111.二叉树的最小深度(相关话题:深度优先)
- 【LeetCode-面试算法经典-Java实现】【111-Minimum Depth of Binary Tree(二叉树的最小深度)】
- 【LeetCode-面试算法经典-Java实现】【111-Minimum Depth of Binary Tree(二叉树的最小深度)】
- 利用python 完成 leetcode 199 二叉树的右视图
- [Java代码] [Leetcode] Maximum and Minimum Depth of Binary Tree 二叉树的最小最大深度
- 利用python 完成 leetcode87 扰乱字符串
- 【LeetCode】Minimum Depth of Binary Tree 二叉树的最小深度 java
- leetcode 二叉树的最小深度
- Leetcode 95. Unique Binary Search Trees II及二叉树最大最小深度镜像树总结
- 利用python 完成 leetcode228 汇总区间
- LeetCode--Maximum Depth of Binary Tree (检索二叉树的最大深度)Python