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

Posted yawenw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode104,111,543 求二叉树深度的dfs解法相关的知识,希望对你有一定的参考价值。

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解法的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 题号26:删除数组中的重复元素, 104 求二叉树的最大深度

Leetcode 题号26:删除数组中的重复元素, 104 求二叉树的最大深度

LeetCode(104):二叉树的最大深度

LeetCode Algorithm 543. 二叉树的直径

543-求二叉树直径

leetcode 104