層次遍歷模板的應用之 111 二叉樹的最小深度

2021-10-09 06:30:14 字數 989 閱讀 8168

最小深度和最大深度是剛好反著來的,注意一點:最小深度是跟節點到葉子節點的深度,如果根節點的左子樹或者右子樹為空,那麼左右子樹為空的時候根本不符合題目要求,因此必做乙個篩選。兩個方法:①遞迴②層次遍歷

遍歷

# definition for a binary tree node.

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class solution:

def mindepth(self, root: treenode) -> int:

if not root:

return 0

#遞迴法

if not root.left:

return 1+self.mindepth(root.right)

if not root.right:

return 1+self.mindepth(root.left)

return 1+min(self.mindepth(root.left),self.mindepth(root.right))

#層次遍歷

queue = collections.deque()

res=1

while queue:

size = len(queue)

for i in range(size):

item = queue.popleft()

if item.left:

if item.right:

if not item.left and not item.right:

return res

res+=1

總結:簡單題,套用模板即可。

二叉樹的層次遍歷 佇列的應用

給定乙個二叉樹,返回其按層次遍歷的節點值。即逐層地,從左到右訪問所有節點 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回其層次遍歷結果 3 9,20 15,7 二叉樹層次遍歷的題目,第一想到的就是官渡優先搜尋。下面做乙個總結 樹的遍歷方法一般分為兩種 一種...

層次遍歷二叉樹

問題 假定根節點位於第0層 1.層次遍歷二叉樹 每層換行分開 2.層次遍歷二叉樹指定的某層 本文 例如 上圖中1.123 4567 82.第三層 78可以看出得出第二問的解,第一問迎刃而解了,所以從問題二下手 1.層次遍歷二叉樹指定的某層 可以得出這樣的乙個結論 遍歷二叉樹的第k層,相當於遍歷二叉樹...

二叉樹層次遍歷

題目描述 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。思路 二叉樹的層次遍歷,利用棧的先進後出的特性。struct treenode class solution res.push back temp while m.empty m中是從左往右入棧,這裡把它反過來,s中是從右往左...