码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode104,111,543 求二叉树深度的dfs解法

时间:2020-04-12 10:47:43      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:none   treenode   解法   code   dfs   tree   二叉树   tco   sel   

104.求二叉树的最大深度

class Solution:
    def maxDepth(self, root: TreeNode) -> int:
        if root == None:
            return 0
        else:
            leftdepth = self.maxDepth(root.left)
            rightdepth = self.maxDepth(root.right)
            return max(leftdepth, rightdepth) + 1 #!!!关键在于+1

 

111.求二叉树的最小深度

class Solution:
    def minDepth(self, root: TreeNode) -> int:
        if not root:
            return 0
        if not root.left:
            return self.minDepth(root.right)+1
        if not root.right:
            return self.minDepth(root.left)+1
        return min(self.minDepth(root.left), self.minDepth(root.right))+1

 

543.求二叉树的直径

class Solution:
    def diameterOfBinaryTree(self, root: TreeNode) -> int:
        self.ans = 1
        def depth(node):
            if not node: return 0
            L = depth(node.left)
            R = depth(node.right)
            self.ans = max(self.ans, L+R+1)
            return max(L, R) + 1
        depth(root)
        return self.ans - 1

 

leetcode104,111,543 求二叉树深度的dfs解法

标签:none   treenode   解法   code   dfs   tree   二叉树   tco   sel   

原文地址:https://www.cnblogs.com/yawenw/p/12683921.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!