Leetcode-112 Path Sum
来源:互联网 发布:java实现ftp断点续传 编辑:程序博客网 时间:2024/05/21 07:35
问题描述
地址:https://leetcode.com/problems/path-sum/#/description
描述:
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.
翻译:
给出一个二叉树和一个特定的值sum,判断是否有从 根节点到叶子节点的路径,使得所有路径上节点的和与sum相等。
问题解析
解这个题需要注意下面的问题:
(1)维持一个变量,可以记录到达当前节点时已经走过的所有节点上数字的和;
(2)一旦遇到 节点值的和=sum即可返回,不需要遍历完所有的节点;
(3)注意给出的条件是根节点到叶子节点的和。
解析代码I
public boolean hasPathSum(TreeNode root, int sum) { if(root == null){ return false; } if(root.val == sum && root.left== null && root.right == null){ return true; } return hasPathSum(root, 0, sum); } public boolean hasPathSum(TreeNode root, int count, int sum) { if(root == null){ return false; } count += root.val; if( count == sum && root.left == null && root.right == null){ return true; } if(root.left != null && hasPathSum(root.left,count, sum)){ return true; } if(root.right != null && hasPathSum(root.right,count, sum)){ return true; } return false; }
解析代码II
public class PathSum{ int count = 0; public boolean hasPathSumII(TreeNode root, int sum){ if(root == null){ return false; } count += root.val; if(count == sum && root.left == null && root.right == null){ return true; } if(hasPathSumII(root.left, sum)){ return true; } if(hasPathSumII(root.right, sum)){ return true; } count -= root.val; return false; } }
0 0
- LeetCode(112)Path Sum
- LeetCode 112 Path Sum
- LeetCode: Path Sum [112]
- LeetCode 112 Path Sum
- [leetcode 112] Path Sum
- leetCode #112 path sum
- [LeetCode 112]Path Sum
- leetcode || 112、Path Sum
- LeetCode 112: Path Sum
- LeetCode 112 Path Sum
- leetcode[112]:Path Sum
- leetcode-112-Path Sum
- Leetcode# 112 Path Sum
- leetcode 112: Path Sum
- LeetCode 112: Path Sum
- [leetcode 112]Path Sum
- LeetCode 112 Path Sum
- LeetCode 112:Path Sum
- linux后台执行命令:&和nohup
- IplImage* cvCapture* 的释放
- 7. Reverse Integer
- 【转载】C# 中的委托和事件(详解:简单易懂的讲解)
- Linux下串口通信详解(上)打开串口和串口初始化详解
- Leetcode-112 Path Sum
- 牛客网 好多鱼!(java实现)
- android插件化开发--修改携程插件支持aidl,dependencies
- ActiveMQ消息处理机制-Queue方式
- 大数据IMF传奇行动绝密课程第73课:Spark SQL Thrift Server实战
- 二叉树的镜像
- redux+flux(一:入门篇)
- 基于DragonBoard 410c的远程家居监控平台一之远程图像传输(上)
- 解决`docker pull`被复位的问题