演算法 二叉樹最大深度

2021-10-04 12:10:08 字數 941 閱讀 7903

給定乙個二叉樹,找出其最大深度。

二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。

說明: 葉子節點是指沒有子節點的節點。

示例:給定二叉樹 [3,9,20,null,null,15,7],

3
/

9 20

/ 15 7

返回它的最大深度 3

遞迴(深度優先)

遞迴到最底層後一層層返回,有節點返回1,沒節點返回零,取返回的兩個子節點的最大數

/**

* definition for a binary tree node.

* class treenode

* }*/class

solution

}

迭代(廣度優先)bfs

一層一層掃瞄,把節點先放入佇列中後對其子節點進行迴圈並放入佇列中。所有節點節點遍歷完畢後,shift出當前節點(此時佇列中只有當前節點的子節點)。當佇列中完全沒有同層節點後,depth++。一直迴圈這個佇列直至沒有值(即,已經遍歷完所有節點並且所有節點都沒有子節點了)

/**

* definition for a binary tree node.

* class treenode

* }*/class

solutionif(

$node

->

right

)array_shift

($nodes);

}if(!

$nodes

)return

$depth

;$depth++;}}}

演算法 最大二叉樹深度

如題 求的就是二叉樹的最大深度。那對於二叉樹或者b 樹的處理,最主要的兩種查詢發放就是深度優先 廣度優先。此處要求樹的高度,第乙個想到的是廣度優先。如下演算法1 class treenode def init self,x self.val x self.left none self.right n...

二叉樹的深度 二叉樹的深度 二叉樹最大寬度

題目 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 葉節點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如 給定二叉樹 3,9,20,null,null,15,7 返回它的最大深度 3 根節點加上左右子樹的最大深度就是樹的最大深度。如下 class solution ...

二叉樹最大 最小深度

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