題目描述
輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。
解法1:遞迴版,首先,給出遞迴結束的條件,當樹為空時,深度為零,接下來,就是一層一層的遞迴了,比較左右子數的深度,其中值較大的作為當前子節點所在層的深度,則父節點的深度為子節點的深度 + 1;
public
class solution
}
解法二:非遞迴版,使用雙輔助棧,乙個用來儲存節點,乙個用來儲存當前節點的深度,同時,定義乙個變數用來儲存當前所找到的最大深度,然後,在節點出棧的同時,將其當前深度也出棧,比較當前深度與最大深度的值,更新最大深度值,然後,將當前節點的左右節點及其深度也分別入棧,最後,直到棧為空時,得到的最大深度就是該樹的深度。
public
class solution
if (curnode.right != null)
}return maxdepth;
}
}
38 二叉樹的深度
2.利用層序遍歷 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。classname solution description todo date 2019 12 22 12 36 author sonnsei public c...
38 二叉樹的深度
輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。示例 給定二叉樹 3,9,20,null,null,15,7 遞迴的方法,比較左邊路徑和右邊路徑哪邊最長,選擇最長的一邊路徑,加上root結點本身的長度。class solutio...
38 二叉樹的深度 python
輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。思路 用層次遍歷,每次遍歷到每層的最後乙個節點,高度增加1 1 class solution 2def treedepth self,proot 3 write code here...