二叉树中和为某一值的路径
2015-06-08 16:24
351 查看
时间限制:1秒空间限制:32768K
通过比例:24.42%
最佳记录:0ms|8552K(来自 牛客688826号)
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
通过比例:24.42%
最佳记录:0ms|8552K(来自 牛客688826号)
题目描述
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } }; */ class Solution { public: vector<vector<int> > FindPath(TreeNode* root,int expectNumber) { vector<vector<int> > pathList; if(!root) return pathList; if(root->val>expectNumber) return pathList; vector<int> sublist; int curNum=0; NLRSearch(root,pathList,sublist,curNum,expectNumber); return pathList; } void NLRSearch(TreeNode* root,vector<vector<int> >& pathList,vector<int>& sublist,int curNum,const int& expectNumber){ if(!root) return; curNum+=root->val; sublist.push_back(root->val); if(expectNumber==curNum){ if(!root->left&&!root->right){ pathList.push_back(sublist); } }else{ NLRSearch(root->left,pathList,sublist,curNum,expectNumber); NLRSearch(root->right,pathList,sublist,curNum,expectNumber); } sublist.pop_back(); } };
相关文章推荐
- 中体时时彩平台源码(修正版)纯源码完整可用下载
- UVA - 11491 Erasing and Winning
- 系统UIAlertView与代码弹出的区别
- 秒杀多线程第十四篇 读者写者问题继 读写锁SRWLock
- 测试博文
- 三分钟教你学Git(十四) 之 线下传输仓库
- 如何查看数据库是否是rac,如何查看数据库是否是单实例
- java中对字符串的操作
- 线程的同步、异步、串行、并行的关系
- 使用CSS时间打点的Loading效果的教程
- 计时器---倒计时功能的实现
- Android控件之ScrollView(scrollbarStyle)
- java 字节流与字符流的区别
- 使用Powerdesigner的物理数据模型生成SQL脚本中开头处多出来的create or replace package PDTypes
- signal num一个int数组,里面数值都是成对出现,只有一个是单独的,找出单独者。360ms
- thinkphp3.2.2升级3.2.3后 Base table or view not found: 1146解决办法
- URAL 1001 Reverse Root
- DOS下切换路径的问题
- Android访问远程数据库之调用Webservice
- 转载,自用,iOS中成员变量和属性的区别