求最大树深
递归算法
class Solution:
def maxDepth(self, root):
"""
:type root: TreeNode
:rtype: int
# 递归 - 极简 - 开始:
if root is None:
return 0
f = self.maxDepth
return 1 + max(f(root.left), f(root.right))
1 行:
class Solution:
def maxDepth(self, root):
f = self.maxDepth
return 0 if root is None else 1 + max(f(root.left), f(root.right))
非递归算法
此算法的思路是,层序遍历二叉树,并统计树的层数,即高度。
if root is None:
return 0
last_level = [root]
h = 0
while last_level != []:
next_level = []
while last_level != []:
node = last_level.pop()
if node.left is