leetcode第104题,最最大树高,由于标签是深度搜索,我就按照深度搜索先做一遍,这要求求最大深度,设置一个变量记录一下深度就可以了,不过这个深度在什么位置自增需要注意,否则结果可能会多1或者少1.最终的递归出口就是节点没有子节点,也就是该节点为叶子节点的时候。由于每个节点接收到的都是来自左右两边子树的深度,因此需要取最大值在继续向上层递交。
class Solution(object):
def maxDepth(self, root):
"""
:type root: TreeNode
:rtype: int
"""
d = 0
def dfs(root,d):
if root == None:
return d
d1 = dfs(root.right,d+1)
d2 = dfs(root.left,d+1)
return max(d1,d2)
d = dfs(root,d)
return d