38 二叉樹的深度

2021-10-01 18:00:25 字數 823 閱讀 7724

2. 利用層序遍歷

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

/**

* @classname solution

* @description todo

* @date 2019/12/22 12:36

* @author sonnsei

*/public

class

solution

}

每個節點遍歷一遍,顯然時間複雜度是o(n

)o(

n),而在最壞情況下,樹的深度是n

n,此時空間複雜度是o(n

)o(

n),而在最好情況下,樹是完全平衡的,此時樹的深度是log

nlo

gn,相應的空間複雜度是o(l

ogn)

o(logn

)

/**

* @classname solution2

* @description todo

* @date 2019/12/26 18:11

* @author sonnsei

*/public

class

solution2

}return ret;

}}

每個節點遍歷一遍,顯然時間複雜度是o(n

)o(

n),而至於空間複雜度,我們需要乙個佇列來儲存一層的節點,所以空間複雜度也是o(n

)o(

n)

38 二叉樹的深度

題目描述 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。解法1 遞迴版,首先,給出遞迴結束的條件,當樹為空時,深度為零,接下來,就是一層一層的遞迴了,比較左右子數的深度,其中值較大的作為當前子節點所在層的深度,則父節點的深度為...

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...