题目描述:
输入一棵二叉树,求该树的深度。
从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
解题思路:
使用递归方法:
如果该树只有一个结点,它的深度为1;
如果根结点只有左子树没有右子树,那么树的深度为左子树的深度+1;
同样,如果根结点只有右子树没有左子树,那么树的深度为右子树的深度+1;
如果根结点既有左子树,也有右子树,该树的深度就是左子树和右子树的最大值,再+1.
代码实现:
# _*_ coding:utf-8 _*_
# class TreeNode:
# def __init__(self,x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def TreeDepth(self, pRoot):
# write code here
if not pRoot:
return 0
count = max(self.TreeDepth(pRoot.left),self.TreeDepth(pRoot.right)) + 1
return count