题目描述:
题解:
问题的关键是:一个树的最大深度=max(左子树最大深度,右子树最大深度)+1
代码:
class Solution(object): def maxDepth(self,root): if root==None: return 0 maxdepth_left = self.maxDepth(root.left) maxdepth_right = self.maxDepth(root.right) return max(maxdepth_left,maxdepth_right)+1
以示例中的树为例,左子树为[3],对左子树再次调用maxDepth函数,3的左右子树均为空,返回depth=0,所以左子树3的depth=1,对右子树[20,15,7]调用maxDepth函数,节点20的左子树为15,右子树为7,15左右子树均空,返回depth1,7也返回depth1,因此节点20深度为2,根结点3的深度为max(1,2)+1=3