leetcode104. 二叉树的最大深度
解题思路:
这道题也可以用之前的遍历来做,不过这个用递归的话代码可以写的很少。
递归计算每个节点往后的深度,然后取最大深度加上根节点的深度1,就得到了最大深度。
对于递归解决这种题目确实方便,问题就在于递归用的还不熟,现在看到问题可以到达一个说知道用递归的程度,
但是还没有到能直接想到递归终止条件的地步,还是要继续刷题。
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def maxDepth(self, root: TreeNode) -> int:
#递归终止条件,如果某层传进来的是None,那么说明他的父节点是根节点,计为1。而它是0
if not root:
return 0
return max(self.maxDepth(root.left),self.maxDepth(root.right))+1