111 二叉樹的最小深度

2021-09-29 21:31:51 字數 1705 閱讀 9591

難度:簡單

題目描述:

思路總結:沒思路。

題解一:(遞迴)

# 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:

ifnot root:

return

0 res =

float

('inf'

)def

helper

(node, level):if

not node.left and

not node.right:

nonlocal res

res =

min(res, level)

if node.left:

helper(node.left, level +1)

if node.right:

helper(node.right, level +1)

helper(root,1)

return res

題解一結果:

題解二:(迭代)

# 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:

ifnot root:

return

0 res =

float

('inf'

) stack =

[(root,1)

]while stack:

cur, level = stack.pop()if

not cur.left and

not cur.right:

res =

min(res, level)

if cur.left:

(cur.left, level +1)

)if cur.right:

(cur.right, level +1)

)return res

題解二結果:

111 二叉樹的最小深度

給定乙個二叉樹,找出其最小深度。最小深度是從根節點到最近葉節點的最短路徑的節點數量。解題思路 這題我想了很久。大概還是對遞迴不太熟悉吧。下面講解一下遞迴的思路 1.如果根節點是null,說明沒有深度。2.如果節點的左右兒子都不存在,說明只有自己,節點深度為1.3.如果節點沒有左兒子,但是有右兒子怎麼...

111 二叉樹的最小深度( )

給定乙個二叉樹,找出其最小深度。最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 920 157返回它的最小深度 2.注意 它是到最近的葉子節點,要多考慮根節點 class solution ...

111 二叉樹的最小深度

給定乙個二叉樹,找出其最小深度。最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回它的最小深度 2.思路 求樹深用dfs,遞迴遍歷左子樹右子樹,取最小的深度。defini...