Python實現 二叉樹的最小深度 的兩種方法

2021-08-27 04:50:34 字數 1245 閱讀 6704

找到給定二叉樹的最小深度

最小深度是從根節點到最近葉子節點的最短路徑上的節點數量

注意:葉子節點沒有子樹

example:

given binary tree[3,9,20,null,null,15,7],

3

/ \

9 20

/ \

15 7

return its minimum depth = 2.

def mindepth(self, root):

""":type root: treenode

:rtype: int

"""if not root:

return 0

curlevelnodelist = [root]

minlen = 1

while curlevelnodelist is not :

tempnodelist =

for node in curlevelnodelist:

if not node.left and not node.right:

return minlen

if node.left is not none:

if node.right is not none:

curlevelnodelist = tempnodelist

minlen += 1

return minlen

def mindepth(self, root):

""":type root: treenode

:rtype: int

"""if not root:

return 0

if not root.left and root.right is not none:

return self.mindepth(root.right)+1

if root.left is not none and not root.right:

return self.mindepth(root.left)+1

left = self.mindepth(root.left)+1

right = self.mindepth(root.right)+1

return min(left,right)

演算法題來自:

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

二叉樹的最小深度為根節點到最近葉子節點的距離。是樣例 給出一棵如下的二叉樹 2 3 4 5 這個二叉樹的最小深度為 2 解題思路 利用了二叉樹的層次遍歷的思想,在每一層的遍歷中都判斷一下是否有葉子結點,如果有葉子結點,則返回該層深度。definition of treenode class tree...

LeetCode系列111 二叉樹的最小深度

給定乙個二叉樹,找出其最小深度。最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。說明 葉子節點是指沒有子節點的節點。方法一 dfs class solution if root left nullptr root right nullptr int min depth int max if ...

Leetcode No 111 二叉樹的最小深度

給定乙個二叉樹,找出其最小深度。最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。說明 葉子節點是指沒有子節點的節點。示例 1 輸入 root 3,9,20,null,null,15,7 輸出 2 示例 2 輸入 root 2,null,3,null,4,null,5,null,6 輸出 5 ...