每日一题20201205(404. 左叶子之和)

简介: 左叶子之和

404. 左叶子之和

25.jpg

image.png

思路



如果这题要求的是求所有叶子节点的和,那是不是很好做了呢?
其实这个是一样的,我们现在想要的就是求出左叶子,那么在求是否是叶子节点的时候,设立一个标志位就可以知道他是不是左叶子了。


# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    def sumOfLeftLeaves(self, root: TreeNode) -> int:
        return self.getLeaf(root)
    def getLeaf(self, root, left=False):
        # 如果root是None,那么说明没有值了,直接返回0
        if root is not None:
            # 如果root.left是None并且root.right也是None
            # 这里就说明他是叶子节点了,但是我们还得判断是否是左叶子
            # getLeaf的left参数就是用来判断他是否是左叶子的
            if root.left is None and root.right is None and left:
                return root.val
            else:
                # 如果不是叶子节点,那么递归继续往下寻找,并且找左子树的时候left为True
                # 这样如果left是叶子节点的话,那么他就是左叶子了
                return self.getLeaf(root.left, True) + self.getLeaf(root.right)
        return 0

26.jpg

image.png



相关文章
|
6月前
|
Java C++ Python
leetcode-404:左叶子之和
leetcode-404:左叶子之和
38 0
|
6月前
|
C++ Python
leetcode-572:另一棵树的子树
leetcode-572:另一棵树的子树
47 0
|
算法
代码随想录Day14 LeetCodeT110平衡二叉树 T257二叉树的所有路径 T404 左叶子之和
代码随想录Day14 LeetCodeT110平衡二叉树 T257二叉树的所有路径 T404 左叶子之和
34 0
|
6月前
LeetCode——572—— 另一棵树的子树
LeetCode——572—— 另一棵树的子树
|
6月前
二叉树刷题记(七-二叉树的右侧视图)
二叉树刷题记(七-二叉树的右侧视图)
LeetCode | 572. 另一棵树的子树
LeetCode | 572. 另一棵树的子树
|
6月前
leetcode404左叶子之和刷题打卡
leetcode404左叶子之和刷题打卡
27 0
LeetCode刷题Day14——二叉树(完全二叉树、平衡二叉树、二叉树路径、左叶子之和)
一、完全二叉树的节点个数 题目链接:222. 完全二叉树的节点个数
|
算法 Java
代码随想录训练营day17|110.平衡二叉树 257. 二叉树的所有路径 404.左叶子之和 v...
代码随想录训练营day17|110.平衡二叉树 257. 二叉树的所有路径 404.左叶子之和 v...
|
Java Python
leetcode每日一题.199:二叉树的右视图
leetcode每日一题.199:二叉树的右视图
56 0