104_二叉树的最大深度

江枫思渺然 提交于 2019-12-17 11:18:09

"""
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7
返回它的最大深度 3 。
"""


# 递归
def maxDepth(root):

    if root is None:
        return 0
    else:
        left_height = maxDepth(root.left)
        right_height = maxDepth(root.right)
        return max(left_height, right_height)+1

# 迭代
def maxDepth2(root):
    stack = []
    if root is not None:
        stack.append((1, root))

    depth = 0
    while stack !=[]:
        current_depth, root = stack.pop()
        if root is not None:
            depth = max(depth, current_depth)
            stack.append((current_depth+1, root.left))
            stack.append((current_depth+1, root.right))

    return depth

print(maxDepth(node1))



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!