博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
437.Path Sum III(递归!important!)
阅读量:5277 次
发布时间:2019-06-14

本文共 1265 字,大约阅读时间需要 4 分钟。

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 = Noneclass 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

转载于:https://www.cnblogs.com/bernieloveslife/p/9765106.html

你可能感兴趣的文章
cygwin的使用
查看>>
NSTextField/NSTextView中显示超链接以及NSMutableAttributedString用法
查看>>
开始 Sencha Touch 2 之旅之一
查看>>
MVVM 模式下iOS项目目录结构详细说明
查看>>
创意,创新,创造
查看>>
零基础ASP.NET Core MVC插件式开发
查看>>
HashedWheelTimer 原理
查看>>
关于myeclipse部署后classes文件夹为空的问题
查看>>
View PDF Online In Java Web
查看>>
AndroidStudio Gradle项目中添加.so文件
查看>>
用delphi+Apache 开发动态网站(二)
查看>>
团队博客PM
查看>>
服务器
查看>>
point-position目标定位
查看>>
关于微软2008技术预览大会南京站和Vista
查看>>
IOS-UITextField-全解
查看>>
C#实现多语言
查看>>
selenium的定位方式
查看>>
客户端页面粗略见解
查看>>
LeetCode 633. Sum of Square Numbers
查看>>