微軟,Google面試題 (27) —— 二元樹的深度

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

                                            10
                                          /     /
                                        6        14
                                      /         /   /
                                    4         12     16

輸出該樹的深度3
二元樹的結點定義如下:
解法一:遍歷二元樹的所有路徑,輸出路徑最大的值。
解法二:遞歸遍歷樹,一個節點的深度等於它的左右子樹深度較大者加一。
解法三:BFS,每遍歷一層深度加一。可用一個全局變量判斷某一層有多少個節點,用來標記層的開始和結束。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章