求二叉樹的最大深度(遞迴和迭代)

2021-10-20 16:24:38 字數 605 閱讀 4972

題目鏈結

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

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

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

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

9 20

/ 15 7

返回它的最大深度 3 。

引數和返回值:引數為樹的節點,返回值為當前節點的深度

單層的邏輯:左子樹和右子樹高度中的最大值加1(當前節點)

終止條件:當前節點為空,返回其高度為0;

int

maxdepth

(treenode* root)

利用乙個佇列,每次儲存一層的節點,當佇列不為空時,depth++,當前層的元素全部移除,下一層元素入佇列,隊列為空時退出

int

maxdepth

(treenode* root)

}return depth;

//return 1 + max(maxdepth(root->left), maxdepth(root->right));

}

求二叉樹的最大深度(遞迴 非遞迴)

力扣104也有該題,可以使用上面進行驗證。當節點為空時,返回0。不為空時,當前節點為根節點的子樹深度為 左子樹深度 右子樹深度 1。求二叉樹的最大深度 param root return public int maxdepth treenode root return math.max maxdep...

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

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

求二叉樹的最大深度

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