lintcode練習 155 二叉樹的最小深度

2021-08-21 07:06:46 字數 899 閱讀 1922

二叉樹的最小深度為根節點到最近葉子節點的距離。

樣例

給出一棵如下的二叉樹:

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...