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