二叉樹的最大深度和最小深度

2021-10-23 15:16:38 字數 663 閱讀 5512

首先看下樹節點的結構

public

class

treenode

}

二叉樹的最大深度比較好求 遞迴呼叫

public

intmaxdepth

(treenode root)

1.首先判斷當前節點是不是空,空的話就返回0,這可以應對直接傳入空樹的情況。

2.如果乙個節點的左孩子和右孩子都為空的話,那麼這個節點就是葉子結點,返回1。

3.取左右子樹的深度,返回最大深度+1,+1是對當前節點來說的。

二叉樹的最小深度比最大深度稍微麻煩一點點,主要是左孩子或者右孩子有乙個為null 的話,直接取兩者中的小值的話就會變成0,需要額外的判斷一下。

public

intmindepth

(treenode root)

}

1.和最大深度一樣,判斷傳入空樹的情況。

2.如果左右孩子都為空,則是葉子結點,返回1。

3.獲取左右子樹的最小深度。

4.如果左右子樹有乙個為空,就返回他們的和+1,因為有一方為0,其實等價於判斷左子樹是不是空,是的話就返回右子樹的最小深度+1,判斷右孩子是不是空,是的話就返回左子樹的最小深度+1。

二叉樹最大深度和最小深度

給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的距離。如果二叉樹為空,則深度為0 如果不為空,分別求左子樹的深度和右子樹的深度,去最大的再加1,因為根節點深度是1,要加進去。int maxdepth treenode root 給定乙個二叉樹,找出其最小深度。二叉樹的最小深度為根...

二叉樹 最大深度和最小深度

leetcode 二叉樹的最大深度 leetcode 二叉樹的最小深度 我們知道完全二叉樹,是可以根據節點數量進行計算出深度的,但是非完成二叉樹呢 他就不滿足了,樹結構體 public class treenode 二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。說明 葉子節點是指沒有子節點...

二叉樹的最大深度和最小深度

題目意思很好理解,下面看 獲取二叉樹的最大深度和最小深度 獲取最小深度 func mindepth root treenode int if root.left nil root.right nil 初始化最小值 mind math.maxint32 左子樹最小值 if root.left nil ...