题目描述
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
解法1:
递归。
class Solution:
def TreeDepth(self, pRoot):
# write code here
if not pRoot:return 0
rightDeep =self.TreeDepth(pRoot.right)
leftDeep =self.TreeDepth(pRoot.left)
return max(rightDeep,leftDeep) + 1
解法二:
层次遍历,每次遍历完一层深度加1。
class Solution:
def TreeDepth(self, pRoot):
# write code here
if not pRoot:
return 0
queue = [pRoot]
deepth = 0
while queue:
deepth+=1
size = len(queue)
for i in range(size):
top = queue.pop(0)
if top.left:
queue.append(top.left)
if top.right:
queue.append(top.right)
return deepth