[leetcode]Path Sum&&Path Sum II(剑指offer面试题25)
来源:互联网 发布:windows版本怎么升级 编辑:程序博客网 时间:2024/05/16 13:58
题目描述:
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.
代码如下:
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: bool hasPathSum(TreeNode *root, int sum) { if(root==NULL){ return false; } int curSum=0; vector<vector<int>> result; vector<int> path; find(root,curSum,sum,path,result); if(result.size()>0){ return true; } else{ return false; } } void find(TreeNode *root, int curSum,int sum,vector<int> &path,vector<vector<int>> &result){ path.push_back(root->val); curSum+=root->val; bool isleaf=root->left==NULL&&root->right==NULL; if(curSum==sum&&isleaf){ result.push_back(path); } if(root->left){ find(root->left,curSum,sum,path,result); } if(root->right){ find(root->right,curSum,sum,path,result); } path.pop_back(); }};
第二题是要打印路径 思路一致
代码如下
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector<vector<int> > pathSum(TreeNode *root, int sum) { vector<vector<int>> paths; if(root==NULL){ return paths; } vector<int> result; int curSum=0; findPath(root,sum,curSum,result,paths); return paths; } void findPath(TreeNode *root,int sum,int curSum,vector<int> &result,vector<vector<int>> &paths){ result.push_back(root->val); curSum+=root->val; bool isleaf=root->left==NULL&&root->right==NULL; if(sum==curSum&&isleaf){ paths.push_back(result); } if(root->left!=NULL){ findPath(root->left,sum,curSum,result,paths); } if(root->right!=NULL){ findPath(root->right,sum,curSum,result,paths); } result.pop_back(); }};
0 0
- [leetcode]Path Sum&&Path Sum II(剑指offer面试题25)
- (面试题25题)LeetCode Path Sum II
- 【Leetcode】Path Sum II (Sum)
- LeetCode: Path Sum II
- LeetCode Path Sum II
- [Leetcode] Path Sum II
- LeetCode: Path Sum II
- [LeetCode] Path Sum II
- 【leetcode】Path Sum II
- [LeetCode]Path Sum II
- [Leetcode]Path Sum II
- [leetcode]Path Sum II
- Leetcode: Path Sum II
- LeetCode-Path Sum II
- [leetcode] Path Sum II
- LeetCode - Path Sum II
- [LeetCode] Path Sum II
- Leetcode Path Sum II
- VM虚拟机里的Ubuntu系统怎么设置屏幕分辨率?
- android动态加载jar以及插件化开发
- C# 制作圆角label
- 爬虫-for fun
- 北京重点小学择校攻略1(转帖)
- [leetcode]Path Sum&&Path Sum II(剑指offer面试题25)
- SqlServer 不常用的语句记录
- 关于jquery的getjson的 unexpected token :
- 1D2D条码生成、检测、识别控件Barcode Xpress详细介绍
- icool210,2416,6410B启动卡制作
- NSUderDefault的使用
- Ogre1.9的下载地址(适合VS2010搭配)
- C++ Primer笔记5_STL之顺序容器
- scrollNumber 滚动视图 随机