16.11.28
来源:互联网 发布:体育视频直播软件 编辑:程序博客网 时间:2024/06/04 18:18
437. Path Sum III
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 1Return 3. The paths that sum to 8 are:5 -> 35 -> 2 -> 1-3 -> 11
分析:查找从父节点到子节点路径之和为给定的数的这种情况的总数
Each time find all the path start from current node
Then move start node to the child and repeat.
Time Complexity should be O(N^2) for the worst case and O(NlogN) for balanced binary Tree.
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public int pathSum(TreeNode root, int sum) { if(root==null)return 0; return findPath(root,sum)+pathSum(root.left,sum)+pathSum(root.right,sum); } public int findPath(TreeNode root,int sum){ int res=0; if(root==null)return res; if(root.val==sum)res++; res+=findPath(root.left,sum-root.val); res+=findPath(root.right,sum-root.val); return res; }}
0 0
- 16.11.28
- 苏嵌23 16.11.28
- iOS百度地图 集成到项目中 16.11.28
- 16.11.1
- 16.11.2
- 16.11.3
- 16.11.4
- 16.11.5
- 16.11.7
- 16.11.8
- 16.11.9
- 16.11.10
- 16.11.11
- 16.11.12
- 16.11.24
- 16.11.25
- 16.11.29
- 苏嵌3 16.11.1
- Python学习之Django(1)
- Spring AOP工作机制进一步理解(中篇)
- 学习资料
- Linux BT下载(10)-出错处理模块和运行日志模块设计
- JavaEE网上商城项目(涉及Structs2+Spring+Hibernate+jQuery)
- 16.11.28
- 设计模式学习笔记--享元模式
- [产品经理]产品经理和项目经理的职责
- 链表中倒数第k个结点
- window.returnValue使用方法
- Linux ARM C语言中调用汇编函数
- Java基础知识
- 关于butterknife代码混淆的一个小坑
- angular之依赖注入