您当前的位置: 首页 >  Python

Better Bench

暂无认证

  • 4浏览

    0关注

    695博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Leetcode刷题Python】404. 左叶子之和

Better Bench 发布时间:2022-08-16 23:41:15 ,浏览量:4

1 题目

给定二叉树的根节点 root ,返回所有左叶子之和。

2 解析

一个节点为「左叶子」节点,当且仅当它是某个节点的左子节点,并且它是一个叶子结点。因此我们可以考虑对整棵树进行遍历,当我们遍历到节点 \textit{node}node 时,如果它的左子节点是一个叶子结点,那么就将它的左子节点的值累加计入答案。

3 Python实现
class Solution:
    def sumOfLeftLeaves(self, root: Optional[TreeNode]) -> int:

        isLeafNode = lambda node:not node.left and not node.right
        def dfs(r):
            ans = 0
            if r.left:
                ans +=r.left.val if isLeafNode(r.left) else dfs(r.left)
            if r.right and not isLeafNode(r.right):
                ans+=dfs(r.right)
            return ans
        return dfs(root) if root else 0

关注
打赏
1665674626
查看更多评论
立即登录/注册

微信扫码登录

0.1324s