解法1:利用层序遍历,二叉树的深度与二叉树的层数等价,属于广度优先搜索(BFS)。
class Solution:
def TreeDepth(self, pRoot):
# write code here
result = 0
if pRoot == None:
return result
queue =[pRoot]
while len(queue) != 0:
for i in range(len(queue)):
node = queue.pop(0)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
result += 1
return result
解法2:利用递归的方法,属于深度优先搜索(DFS)。
class Solution:
def TreeDepth(self, pRoot):
# write code here
if pRoot == None:
return 0
left = self.TreeDepth(pRoot.left)
right = self.TreeDepth(pRoot.right)
return max(left,right) + 1