LeetCode 112 Path Sum
来源:互联网 发布:tensorflow spark 编辑:程序博客网 时间:2024/05/18 06:19
- 题目要求
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
- 解题思路: 该题是求从根节点到叶子节点的值的和,找出等于目标值的。很自然的想到用前序遍历的思路,一个变量存放着路径过程中的和,在叶子节点判断一下是否等于目标值,此算法用到递归,递归的实质是使用了一个系统栈,最后结果是先进后出,把当前节点出栈时,减去当前值也就相当于去掉当前节点的值了。
以下是系统栈存放节点的示意图,当某个节点没有左右子树时就会出栈,直到遇到没有访问的左子树或右子树时,又会发生入栈。
public boolean hasPathSum(TreeNode root, int sum) { return search(root,sum); } int nums=0; boolean flag=false; public boolean search(TreeNode root, int sum){ if(root!=null){ nums+=root.val; if(root.left==null&&(root.right==null)){ if(nums==sum){ return true; } } flag=search(root.left,sum); flag=search(root.right,sum); System.out.println("root.val "+root.val+" nums: "+nums+" flag: "+flag); nums-=root.val;//从栈里弹出时,表示当前值已经遍历了,减去当前值。 } return flag; }
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
- 关于自定义控件之自定义属性篇
- java序列化反序列化原理
- 杂技杂记
- Lucene: 全文检索的基本原理
- flume入门例子
- LeetCode 112 Path Sum
- Android 性能优化
- 腾讯云服务器中的80端口占用问题
- Notepad++中常用的插件
- 微信小程序页面跳转并传参
- MySQL执行外部sql脚本文件命令报错:unknown command '\'
- HDu-2896 病毒侵袭,AC自动机模板题!
- python学习记录---不定长参数
- MongoDB使用小结:一些不常见的经验分享