您的位置:首页 > 编程语言 > Python开发

[leetcode: Python] 111. Minimum Depth of Binary Tree

2017-05-11 10:28 609 查看
题目:

Given a binary tree, find its minimum depth.

The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.

方法一:性能65ms

# 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 minDepth(self, root):
"""
:type root: TreeNode
:rtype: int
"""
if root == None:
return 0
if root.left == None and root.right != None:
return self.minDepth(root.right) + 1
if root.left != None and root.right == None:
return self.minDepth(root.left) + 1
return min(self.minDepth(root.left), self.minDepth(root.right)) + 1


方法二:性能55ms

class Solution(object):
def minDepth(self, root):
if root == None:
return 0
depth = 0
curr = 1
next = 0
tl = []
tl.append(root)
while curr != 0:
curr = curr - 1
tmp = tl.pop(0)
if tmp.left != None:
next = next + 1
tl.append(tmp.left)
if tmp.right != None:
next = next + 1
tl.append(tmp.right)
if tmp.left == None and tmp.right == None:
return depth + 1
if curr == 0:
curr = next
next = 0
depth = depth + 1
return depth
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: