求二叉樹的最大or最小深度

2021-10-02 05:15:37 字數 1044 閱讀 4503

給定乙個二叉樹,找出其最大深度。最大深度即二叉樹的高度,就是根節點到最遠葉子節點的最長路徑上的節點數。

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

3

/ \9 20

/ \

15 7

返回它的最大深度  3.

通過遞迴,依次查詢左、右子節點的最大深度,並返回給根節點乙個最大深度。

var maxdepth = function(root) 

// 每次向下查詢時深度加1

return math.max(maxdepth(root.left), maxdepth(root.right)) + 1;

};

給定乙個二叉樹,找出其最小深度。最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。

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

3

/ \9 20

/ \

15 7

返回它的最小深度  2

通過遞迴,依次查詢左、右子節點的最小深度,並返回給根節點乙個最小深度。

特別注意:當根節點的左子樹或右子樹為空時,最小深度不是1

例: 

3\20

\7

此時的最小深度不是1,而是3

var mindepth = function(root) 

let l = mindepth(root.left); //先左後右

let r = mindepth(root.right);

if (root.left == null || root.right == null)

// 每次深度加一

return math.min(l, r) + 1;

};

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

3.利用廣度優先搜尋求最小深度 總結在刷leetcode時,把二叉樹最小深度和最大深度搞混了,在這裡mark下 二叉樹 binary tree 是指樹中節點的度不大於2的有序樹,它是一種最簡單且最重要的樹 如下 示例 public int maxdepth treenode root 總體的思路就是...

二叉樹最大 最小深度

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

求二叉樹的最大深度

二叉樹的題目,大部分都能用分治的思路來解題。求二叉樹的最大深度,就是求左 右子數的最大深度 1即可。給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的距離。樣例給出一棵如下的二叉樹 1 2 3 4 5這個二叉樹的最大深度為3.definition of treenode publi...