給定乙個二叉樹,找出其最大深度。最大深度即二叉樹的高度,就是根節點到最遠葉子節點的最長路徑上的節點數。通過遞迴,依次查詢左、右子節點的最大深度,並返回給根節點乙個最大深度。示例:給定二叉樹 [3,9,20,null,null,15,7]
返回它的最大深度 3.3
/ \9 20
/ \
15 7
var maxdepth = function(root)
// 每次向下查詢時深度加1
return math.max(maxdepth(root.left), maxdepth(root.right)) + 1;
};
給定乙個二叉樹,找出其最小深度。最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。通過遞迴,依次查詢左、右子節點的最小深度,並返回給根節點乙個最小深度。示例:給定二叉樹 [3,9,20,null,null,15,7]
返回它的最小深度 23
/ \9 20
/ \
15 7
特別注意:當根節點的左子樹或右子樹為空時,最小深度不是1
例:此時的最小深度不是1,而是33\20
\7
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...