給定乙個二叉樹,找出其最大深度。
二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。
說明:葉子節點是指沒有子節點的節點
如果我們知道了左子樹和右子樹的最大深度 l 和 r,那麼該二叉樹的最大深度即為max(l,r)+1
而左子樹和右子樹的最大深度又可以以同樣的方式進行計算。因此我們在計算當前二叉樹的最大深度時,可以先遞迴計算出其左子樹和右子樹的最大深度,然後在 o(1)時間內計算出當前二叉樹的最大深度。遞迴在訪問到空節點時退出。
/**
* definition for a binary tree node.
* public class treenode
* }*/class solution
}
我們也可以用「廣度優先搜尋」的方法來解決這道題目,但我們需要對其進行一些修改,此時我們廣度優先搜尋的佇列裡存放的是「當前層的所有節點」。每次拓展下一層的時候,不同於廣度優先搜尋的每次只從佇列裡拿出乙個節點,我們需要將佇列裡的所有節點都拿出來進行拓展,這樣能保證每次拓展完的時候佇列裡存放的是當前層的所有節點,即我們是一層一層地進行拓展,最後我們用乙個變數 ans 來維護拓展的次數,該二叉樹的最大深度即為 ans。
class solution
queuequeue = new linkedlist();
queue.offer(root);
int ans = 0;
while (!queue.isempty())
if (node.right != null)
size--;
}ans++;
}return ans;
104 二叉樹的最大深度
給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回它的最大深度 3 思路 使用遞迴,遍歷左子樹右子樹,使用max找出最大的深度。defin...
104 二叉樹的最大深度
給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回它的最大深度 3 解題思路 採用dfs進行深度搜尋,一行算一次搜尋,輸出結果長度即可。...
104 二叉樹的最大深度
每日leetcode 24 二叉樹的最大深度 給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回它的最大深度 3 這道題遞迴到最後葉節點...