二叉樹最小深度

2021-10-09 17:34:27 字數 820 閱讀 9190

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

遞迴,若為空樹返回0;

若左右子樹都為空,則返回+1

若左子樹為空,則返回右子樹的最小深度+1;

若右子樹為空,則返回左子樹的最小深度+1;

若左右子樹均不為空,則取左、右子樹最小深度的較小值,+1;

# 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 root is none:

return 0

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

return 1

elif root.left is none:

return 1 + self.mindepth(root.right)

elif root.right is none:

return 1 + self.mindepth(root.left)

else:

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

二叉樹最大 最小深度

二叉樹求最大,最小深度是二叉樹很基本的問題,基本上就是簡單的遞迴問題!首先明確一下二叉樹深度的定義 從根節點到葉子節點的深度 二叉樹的節點無外乎三種狀態 1.左右子樹皆存在 2.為葉子節點,左右子樹皆為null 3.另外一種就是乙個子樹為null,另乙個非空。二叉樹其實就是遞迴遍歷的思想,首先想遞迴...

二叉樹的最小深度

題目 給定乙個二叉樹,找出其最小深度。二叉樹的最小深度為根節點到最近葉子節點的距離。樣例給出一棵如下的二叉樹 1 2 3 4 5 這個二叉樹的最小深度為 2 思路 開始以為和求最大深度似的乙隻去深度最小,後來想想不對。要處理節點的左子樹是空或者右字樹是空的情況,而且每次處理的方式相同,提示我運用遞迴...

二叉樹的最小深度

給定乙個二叉樹,找出其最小深度。二叉樹的最小深度為根節點到最近葉子節點的距離。樣例 給出一棵如下的二叉樹 1 2 3 4 5 這個二叉樹的最小深度為 2 class solution if root right null root left null p mindepth root left 1 q...