首页 > 试题广场 >

左叶子之和

[编程题]左叶子之和
  • 热度指数:3037 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
计算给定二叉树的左叶子之和。

树上叶子节点指没有后继节点的节点,左叶子指连向父节点的左侧的叶子节点。

样例 2 解释:

叶子节点有 4 , 5 ,3,左叶子只有 4 ,所以答案返回 4

样例 3 解释

叶子节点有 4 , 5 ,6,左叶子有 4 , 6,所以答案返回 10

数据范围:树上节点的数量满足 ,节点上的值满足
示例1

输入

{1,2}

输出

2
示例2

输入

{1,2,3,4,5}

输出

4
示例3

输入

{1,2,3,4,5,6}

输出

10

说明:本题目包含复杂数据结构TreeNode,点此查看相关信息
class Solution:
    def sumOfLeftLeaves(self , root: TreeNode) -> int:
        # write code here
        l = []
        def isLeaf(node):
            # 判断节点是否为叶子节点
            if node is not None and node.left is None and node.right is None:
                return True 
            return False

        def dfs(root):
            if not root:
                return 
            if isLeaf(root.left):
                l.append(root.left.val)
            dfs(root.left)
            dfs(root.right)
        dfs(root)
        return sum(l)

发表于 2023-04-27 14:19:09 回复(0)