zoukankan      html  css  js  c++  java
  • 每日一题20201205(404. 左叶子之和)

    404. 左叶子之和

    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
    
    
    

    image.png

  • 相关阅读:
    14-快速排序
    linux上挂在windows的共享文件系统,大小写不敏感
    【mount】linux挂共享盘
    监控windows服务或者进程
    自定义时间间隔
    示例
    filebeat
    kafka
    文档碎片
    简单DOM操作
  • 原文地址:https://www.cnblogs.com/we8fans/p/14089139.html
Copyright © 2011-2022 走看看