天天看點

劍指offer系列之三十七:二叉樹的深度

題目描述

輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。

有了前面尋找二叉樹路徑的基礎之後,解決這題應該不難。根據書上的思路,有一種更簡潔的算法,思路如下:如果二叉樹隻有根節點那麼深度就是1,如果隻有左子樹,那麼就是左子樹的深度加1就是整棵二叉樹的深度;如果隻有右子樹,那麼二叉樹的深度就是右子樹的深度加1;如果既有左子樹又有右子樹,那麼二叉樹的深度就是左右子樹中深度更大的深度加1了。根據這個過程,自然發現,實際上隻需要分别遞歸二叉樹的左右子樹并計算其深度,那麼最後在其較大值中加1就是二叉樹的深度了。是以,實作的代碼如下(已被牛客ac):

繼續閱讀