leetcode oj java Path Sum
来源:互联网 发布:流程优化再造的意思 编辑:程序博客网 时间:2024/06/12 23:53
问题描述:
Path Sum
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.
For example:Given the below binary tree and
sum = 22
,5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1
return true, as there exist a root-to-leaf path 5->4->11->2
which sum is 22.
解决方案: 从根节点依次扫描,每次减去父亲节点的值,直到直到叶子节点且减去之后值为0 即可。
package leetcode;
public class hasPathSum {
/**
* @param args
*/
public static boolean hasPathSum(TreeNode root, int sum){
if(root == null){
return false;
}
if(root.right == null && root.left == null){
if(sum - root.val == 0)
{return true;}
}
return hasPathSum(root.left , sum-root.val) ||
hasPathSum(root.right, sum-root.val);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
TreeNode root = new TreeNode(5);
TreeNode rl = new TreeNode(4);
TreeNode rr = new TreeNode(8);
TreeNode rll = new TreeNode(11);
TreeNode rlll = new TreeNode(7);
TreeNode rllr = new TreeNode(2);
TreeNode rrl = new TreeNode(13);
TreeNode rrr = new TreeNode(4);
TreeNode rrrr = new TreeNode(1);
root.left = rl;
root.right = rl;
rl.left = rll;
rll.left = rlll;
rll.right = rllr;
rr.left = rrl;
rr.right = rrr;
rrr.right = rrrr;
boolean flag = hasPathSum(root, 22);
System.out.println(flag);
}
}
给出的是完整的代码,可以自己调试。
提交时只需要 hasPathSum 这个方法。
运行结果:
Accepted
- leetcode oj java Path Sum
- leetcode oj java 64. Minimum Path Sum
- LeetCode OJ:Path Sum
- LeetCode OJ Path Sum
- LeetCode OJ:Path Sum II
- LeetCode OJ:Minimum Path Sum
- LeetCode OJ - Path Sum II
- LeetCode OJ - Minimum Path Sum
- LeetCode OJ Minimum Path Sum
- LeetCode OJ Path Sum II
- [Leetcode] Path Sum (Java)
- [leetcode]Path Sum[java]
- [LeetCode][Java] Path Sum
- LeetCode|Path Sum-java
- leetcode:Path Sum 【Java】
- LeetCode OJ:Binary Tree Maximum Path Sum
- LeetCode OJ - Binary Tree Maximum Path Sum
- LeetCode OJ Binary Tree Maximum Path Sum
- 常用接口介绍05——螺钉式PCB接线端子
- 计算找零
- 【ubuntu操作系统】ubuntu系统下第一个C语言程序
- AndroidStudio写讯飞语音识别遇到的问题
- 【Leetcode】Linked List Cycle II
- leetcode oj java Path Sum
- NYOJ 325 zb的生日 【0 1 背包】
- 什么时候需要拷贝构造函数和赋值构造函数?
- 对称加密和非对称加密
- LeetCode:Min Stack
- JS中的原型链
- poj--3984--迷宫问题(bfs+路径记录)
- execl,execv说明
- 动态规划初步学习-hdu4800