Lintcode 遞迴 97 二叉樹的最大深度

2021-08-07 16:43:27 字數 769 閱讀 3712

點此直接進入題目

解題思路:這道題是求二叉樹的高度的(也叫做深度),這道題有很多種做法,也可以用佇列的方式來做,但是**要求用遞迴的思想來做。其實遞迴比用佇列簡單的好多。分析題目,給定乙個二叉樹,當該樹根節點不為

null

時,然後建立乙個整形

depth=0

,;否則返回

0,然後比對左右子樹的高度,選取左右子樹高度最高的計算,然後加

depth,

最後返回

depth。

解題過程:首先遞迴出口是樹的根為空,即根為

null

,否則進入遞迴,比較做右子樹的高度,然後加上

depth。

以下為**實現

int maxdepth(treenode *root)

else depth+=b\\depth

加左右子樹的最大值。

;return depth;

}else return 0;

}注意事項:一定要定義a,b,然後將maxdepth(root->left);賦值給a(b也一樣),如果不這樣做的話,下面的每次判斷都要遞迴一次,很麻煩。

個人感覺:二叉樹這方面還是用遞迴簡單,就像我開頭說的,如果這題用佇列的方式做的話,我覺得挺麻煩的。在我上學期學的時候,老師就交我們用佇列的方式處理這道題,我覺得挺麻煩的,做這道題的時候,才發現用遞迴簡單。

lintcode 97 二叉樹的最大深度

描述 給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的距離。樣例 給出一棵如下的二叉樹 1 2 3 4 5 這個二叉樹的最大深度為3.思路 對於樹而言,很容易想到遞迴,樹的深度就等於max 1 左子樹的深度又可以看做以左孩子節點為根節點,右子樹的深度又可以看做以右孩子節點為根節點...

LintCode 等價二叉樹

題目描述 檢查兩棵二叉樹是否等價。等價的意思是說,首先兩棵二叉樹必須擁有相同的結構,並且每個對應位置上的節點上的數都相等。樣例 1 1 2 2 and 2 2 4 4 就是兩棵等價的二叉樹。1 1 2 3 and 2 3 4 4就不是等價的。做題思路 本題給出的bool型別的函式來判斷二叉樹是否等價...

lintcode 等價二叉樹

1 題目 檢查兩棵二叉樹是否等價。等價的意思是說,首先兩棵二叉樹必須擁有相同的結構,並且每個對應位置上的節點上的數都相等。樣例 1 1 2 2 and 2 2 4 4就是兩棵等價的二叉樹。1 1 2 3 and 2 3 4 4就不是等價的。2 思路 對兩課二叉樹從以下幾種情況考慮 兩個均空,true...