輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。
思路
如果一棵樹只有乙個結點,它的深度為1。 如果根結點只有左子樹而沒有右子樹, 那麼樹的深度應該是其左子樹的深度加 1,同樣如果根結點只有右子樹而沒有左子樹,那麼樹的深度應該是其右子樹的深度加 1。如果既有右子樹又有左子樹, 那該樹的深度就是其左、右子樹深度的較大值再加 1。 比如在圖 6.1 的二叉樹中,根結點為 1 的樹有左右兩個子樹,其左右子樹的根結點分別為結點 2 和 3。根結點為 2 的左子樹的深度為 3, 而根結點為 3 的右子樹的深度為 2,因此根結點為 1 的樹的深度就是 4 。
這個思路用遞迴的方法很容易實現, 只需對遍歷的**稍作修改即可。
劍指offer 二叉樹的深度
輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。如果二叉樹只有根節點那麼深度就是1,如果只有左子樹,那麼就是左子樹的深度加1就是整棵二叉樹的深度 如果只有右子樹,那麼二叉樹的深度就是右子樹的深度加1 如果既有左子樹又有右子樹,那...
劍指offer 二叉樹的深度
輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。思路 面對樹形結構,我們常用的演算法就是遞迴,根樹的每一塊子樹都可以看成一棵小的完整的樹,這位我們解題提供了很好的思路。如果一開始傳入的就是空的那麼深度就是0,如果不是0,那麼這顆...
劍指offer 二叉樹的深度
class solution def treedepth self,proot write code here if proot none return 0 return max 1 self.treedepth proot.left 1 self.treedepth proot.right 非常簡...