• leetcode112 Path Sum


     1 """
     2 Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.
     3 Note: A leaf is a node with no children.
     4 Example:
     5 Given the below binary tree and sum = 22,
     6       5
     7      / 
     8     4   8
     9    /   / 
    10   11  13  4
    11  /        
    12 7    2      1
    13 return true, as there exist a root-to-leaf path 5->4->11->2 which sum is 22.
    14 """
    15 """
    16 这道求二叉树的路径需要用深度优先算法DFS的思想来遍历每一条完整的路径,
    17 也就是利用递归不停找子节点的左右子节点,而调用递归函数的参数只有当前节点和sum值。
    18 首先,如果输入的是一个空节点,则直接返回false,
    19 如果输入的只有一个根节点,则比较当前根节点的值和参数sum值是否相同,
    20 若相同,返回true,否则false。
    21 这个条件也是递归的终止条件。
    22 下面我们就要开始递归了,由于函数的返回值是Ture/False,
    23 我们可以同时两个方向一起递归,中间用或||连接,只要有一个是True,整个结果就是True。
    24 递归左右节点时,这时候的sum值应该是原sum值减去当前节点的值。
    25 """
    26 class TreeNode:
    27     def __init__(self, x):
    28         self.val = x
    29         self.left = None
    30         self.right = None
    31 
    32 class Solution:
    33     def hasPathSum(self, root, sum):
    34         if root == None:
    35             return False
    36         if root.left == None and root.right == None: #!!!判别条件
    37             return root.val == sum
    38         return self.hasPathSum(root.left, sum - root.val) or self.hasPathSum(root.right, sum - root.val)
    39                         #!!!sum值不断改变为 sum - root.val
  • 相关阅读:
    Unity3D性能优化之资源导入标准和属性设置篇
    博客主题-Next风格
    Pytorch 搭建 LeNet-5 网络
    CIFAR数据集解读
    Mnist数据集解读
    博客主题——cnbook
    博客主题——element v2
    更换清华镜像源
    图像插值技术——双线性插值法
    PASCAL VOC2012数据集解读
  • 原文地址:https://www.cnblogs.com/yawenw/p/12305559.html
Copyright © 2020-2023  润新知