刷題 104 二叉樹的最大深度

2021-10-08 15:00:55 字數 954 閱讀 2575

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

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

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

如果我們知道了左子樹和右子樹的最大深度 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 這道題遞迴到最後葉節點...