美文网首页
Python实现"左叶子之和"的两种方法

Python实现"左叶子之和"的两种方法

作者: 不湿的尿布湿 | 来源:发表于2020-03-07 20:25 被阅读0次

题目

给定一颗二叉树,返回它所有左叶子节点之和

举例

    3
   / \
  9  20
    /  \
   15   7
return 24

递归方法

def sumOfLeftLeaves(self, root):
        """
        :type root: TreeNode
        :rtype: int
        """
        if not root:
            return 0
        if not root.left and not root.right:   #当前节点不存在左右子树
            return 0
        if not root.left and root.right:       #当前节点只有右子树
            return self.sumOfLeftLeaves(root.right)
        if root.left and not root.right:     #当前节点只有左子树
            if not root.left.left and not root.left.right:   #当前节点的左节点不存在左右子树
                return root.left.val
            else:
                return self.sumOfLeftLeaves(root.left)
        sum = 0
        if root.left and root.right:        #当前节点既有左子树又有右子树
            if not root.left.left and not root.left.right:         #当前节点的左子树没有左右节点
                sum += root.left.val
            else:
                sum += self.sumOfLeftLeaves(root.left)
            sum += self.sumOfLeftLeaves(root.right)
        return sum

简化递归写法(参考他人)

def sumOfLeftLeaves(self, root):
        """
        :type root: TreeNode
        :rtype: int
        """
        if not root:
            return 0
        sum = 0
        if root.left and not root.left.left and not root.left.right:
            sum += root.left.val
        sum += self.sumOfLeftLeaves(root.left)
        sum += self.sumOfLeftLeaves(root.right)
        return sum

相关文章

  • Python实现"左叶子之和"的两种方法

    题目 给定一颗二叉树,返回它所有左叶子节点之和 举例 递归方法 简化递归写法(参考他人)

  • 2021-12-16 404. 左叶子之和【Easy】

    计算给定二叉树的所有左叶子之和。 示例: 方法一:

  • 左叶子之和

    左叶子之和 https://leetcode-cn.com/problems/sum-of-left-leaves...

  • 左叶子之和

    左叶子之和,给定二叉树的根节点 root ,返回所有左叶子之和。 输入: root = [3,9,20,null,...

  • 404-左叶子之和

    左叶子之和 题目 计算给定二叉树的所有左叶子之和。 示例: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所...

  • 2019-03-27 待提高

    1.#### 左叶子之和 计算给定二叉树的所有左叶子之和。 示例: / 9 20/ 15 7 在这个二叉树...

  • 【LeetCode】左叶子之和

    题目描述: https://leetcode-cn.com/problems/sum-of-left-leaves...

  • Python字符串替换的两种实现方法

    Python实现字符串的两种方法。 方法一:使用python字符串的内置方法replace方法实现替换def st...

  • 404. 左叶子之和

    计算给定二叉树的所有左叶子之和。 解:1代表左节点,0代表右节点

  • 404. 左叶子之和

    计算给定二叉树的所有左叶子之和。 示例: / 9 20/ 15 7 在这个二叉树中,有两个左叶子,分别是 ...

网友评论

      本文标题:Python实现"左叶子之和"的两种方法

      本文链接:https://www.haomeiwen.com/subject/vgwhdhtx.html