zoukankan      html  css  js  c++  java
  • 437.Path Sum III(递归!important!)

    You are given a binary tree in which each node contains an integer value.

    Find the number of paths that sum to a given value.

    The path does not need to start or end at the root or a leaf, but it must go downwards (traveling only from parent nodes to child nodes).

    The tree has no more than 1,000 nodes and the values are in the range -1,000,000 to 1,000,000.

    Example:

    root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8

          10
         /  
        5   -3
       /     
      3   2   11
     /    
    3  -2   1
    

    Return 3. The paths that sum to 8 are:

    1. 5 -> 3
    2. 5 -> 2 -> 1
    3. -3 -> 11
    # Definition for a binary tree node.
    class TreeNode:
        def __init__(self, x):
            self.val = x
            self.left = None
            self.right = None
    
    class Solution:
        def pathSum(self, root, sum):
            """
            :type root: TreeNode
            :type sum: int
            :rtype: int
            """
            def solve(root,sum): #from root to the child
                if root is None:
                    return 0
                return int(root.val==sum) + solve(root.left,sum-root.val) + solve(root.right,sum-root.val)
            if root is None:
                return 0
            return solve(root,sum) + self.pathSum(root.left,sum) + self.pathSum(root.right,sum) #choose root and not choose root
    
  • 相关阅读:
    查询linux服务器有哪些IP在连接
    GitLab的使用
    jenkins安装
    GitLab安装
    Git for Linux
    PV并发UV
    yum安装zabbix故障报错
    redis备份恢复
    python递归-三元表达式-列表生成式-字典生成式-匿名函数-部分内置函数-04
    python函数闭包-装饰器-03
  • 原文地址:https://www.cnblogs.com/bernieloveslife/p/9765106.html
Copyright © 2011-2022 走看看