牛客網刷題 二叉樹的最大深度

2021-10-21 13:29:27 字數 983 閱讀 5674

求給定二叉樹的最大深度,

最大深度是指樹的根結點到最遠葉子結點的最長路徑上結點的數量。

輸入

給定的二叉樹是,

輸出

3

深度優先搜尋【ps:使用遞迴】

二叉樹的最大深度可以通過深度優先搜尋遍歷的方式去計算。

遞迴的解析:

終止條件:當 root​ 為空,說明已越過葉節點,因此返回 深度 0 。

遞推工作:本質上是對樹遍歷。

計算節點 root​ 的 左子樹的深度 ,即呼叫 maxdepth(root.left);

計算節點 root​ 的 右子樹的深度 ,即呼叫 maxdepth(root.right);

返回值:返回 此樹的深度 ,即 max(maxdepth(root.left), maxdepth(root.right)) + 1。

// 思路1

public

class

solution

int left =

maxdepth

(root.left)

;int right =

maxdepth

(root.right)

;return

(left > right ? left : right)+1;}}

時間複雜度分析:

o(n):遍歷二叉樹的所有節點

空間複雜度分析:

o(n):最差情況下(當樹退化為鍊錶時),遞迴深度可達到n

小夥伴如果想測試的話,可以直接到牛客網這個鏈結做測試

二叉樹的最大深度-牛客網

二叉樹的深度 牛客網 二叉樹的最大深度

求給定二叉樹的最大深度,最大深度是指樹的根結點到最遠葉子結點的最長路徑上結點的數量。示例1輸入 返回值 2 示例2輸入 返回值 3 解題方法 最大深度一般都遞迴,遞迴注意結束的條件,不然就死迴圈了 class treenode def init self,x self.val x self.left...

牛客刷題二叉樹之對稱二叉樹

請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。用兩種方式,遞迴和非遞迴 一 遞迴方式 struct treenode class solution bool issymmetricalcore treenode left,treenod...

牛客網 二叉樹

如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹中共有4個...