二叉樹的最小深度為根節點到最近葉子節點的距離。
是樣例
給出一棵如下的二叉樹:
2 3
4 5
這個二叉樹的最小深度為 2
解題思路:
利用了二叉樹的層次遍歷的思想,在每一層的遍歷中都判斷一下是否有葉子結點,如果有葉子結點,則返回該層深度。
"""
definition of treenode:
class treenode:
def __init__(self, val):
self.val = val
self.left, self.right = none, none
"""class solution:
"""@param root: the root of binary tree
@return: an integer
"""def mindepth(self, root):
# write your code here
self.depth = 0
if not root:
return self.depth
q = [root]
while q:
new_q =
self.depth += 1
for node in q:
if node.left:
if node.right:
# 判斷節點是否為葉子節點, 如果出現葉子節點,即可返回最小深度
if node.left == none and node.right == none:
return self.depth
q = new_q
return self.depth
LintCode 155 二叉樹的最小深度
這題需要考慮什麼是最小深度,根節點到最近葉子節點的距離,為了防止乙個子樹為null的情況干擾後續的 math.min dfsmindepth root.left dfsmindepth root.right 運算,將 if root null 當然我看的答案 import tree.treenode...
lintcode 155 二叉樹的最小深度
給定乙個二叉樹,找出其最小深度。二叉樹的最小深度為根節點到最近葉子節點的距離。樣例給出一棵如下的二叉樹 這個二叉樹的最小深度為 2 標籤二叉樹 深度優先搜尋 思路 與 lintcode 97.二叉樹的最大深度 類似,不同的是在返回左右子樹深度時,二叉樹的深度必須是根結點到葉子結點的距離,不能單純的比...
lintcode練習 86 二叉查詢樹迭代器
設計實現乙個帶有下列屬性的二叉查詢樹的迭代器 對於下列二叉查詢樹,使用迭代器進行中序遍歷的結果為 1,6,10,11,12 10 1 11 6 12額外空間複雜度是o h 其中h是這棵樹的高度 super star 使用o 1 的額外空間複雜度 definition of treenode clas...