python--lintcode97. 二叉树的最大深度

给定一个二叉树,找出其最大深度。

二叉树的深度为根节点到最远叶子节点的距离。

样例

给出一棵如下的二叉树:

  1
 / \ 
2   3
   / \
  4   5

这个二叉树的最大深度为3.

今天要介绍一下分治法的思想,就是当一个问题可以被拆分成不同的小问题的时候,就先拆分。然后再把小问题的答案组合起来。

比如说这一题,求树的深度。树的深度=max(左子树深度,右子树深度)+1,于是该问题被拆解。

class TreeNode:
    def __init__(self, val):
        self.val = val
        self.left, self.right = None, None


class Solution:
    """
    @param root: The root of binary tree.
    @return: An integer
    """
    def maxDepth(self, root):
        # write your code here
        def find(root):
            if(root is None):return 0
            left=find(root.left)
            right=find(root.right)
            if(left>right):return left+1
            else :return right+1
        result=find(root)
        return result


Tree = TreeNode(2)
Tree.left = TreeNode(1)
aa=Tree.right = TreeNode(3)
aa.right=TreeNode(4)
s = Solution()
print(s.maxDepth(Tree))


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页