本文算法使用python3實現
1. 問題
求解二叉樹的高度。
2 思路描述
方法一:利用層次遍歷來求解二叉樹的高度。(如果懂如何進行BFS就容易明白此種方法)
方法二:利用遞歸求二叉樹高度。
3 程序代碼:
(1)方法一
class Solution:
def TreeDepth(self, root):
if root == None:
return
queue = []
depth = 0
queue.append(root)
while queue:
# childs保存每一層節點
childs = []
for node in queue:
if node.left:
childs.append(node.left)
if node.right:
childs.append(node.right)
queue = childs
depth += 1
return depth
(2)方法二
class Solution:
def TreeDepth(self, root):
if not root:
return 0
left = self.TreeDepth(root.left)
right = self.TreeDepth(root.right)
return max(left, right) + 1
