JD 1368:二叉树中和为某一值的路径
2014-06-20 21:46
260 查看
OJ题目:click here~~
题目分析:找[b]二叉树中和为某一值的路径。。。[/b]
[b]剑指offer 面试题25[/b]
[b]AC_CODE[/b]
const int maxn = 10008 ;
int n , k ;
struct Node{
int x ;
int l , r ;
Node():l(-1),r(-1){}
}tree[maxn];
void FindPath(int t , int sum , vector<int> &path){
if(tree[t].l == -1 && tree[t].r == -1 ){
if(sum + tree[t].x == k){
path.push_back(t) ;
printf("A path is found:") ;
for(int i = 0;i < path.size();i++)
printf(" %d" , path[i]) ;
puts("") ;
path.pop_back() ;
}
return ;
}
else{
if(sum + tree[t].x >= k) return ;
else{
path.push_back(t) ;
FindPath(tree[t].l , sum + tree[t].x , path) ;
FindPath(tree[t].r , sum + tree[t].x , path) ;
path.pop_back() ;
}
}
}
int main(){
while(cin >> n >> k){
int i , w , l , r ;
for(i = 1;i <= n;i++){
scanf("%d%d%d" , &w , &l , &r) ;
tree[i].x = w ;
tree[i].l = min(l , r) ;
tree[i].r = max(l , r) ;
}
vector<int> path ;
puts("result:") ;
FindPath(1 , 0 , path) ;
}
return 0 ;
}
题目分析:找[b]二叉树中和为某一值的路径。。。[/b]
[b]剑指offer 面试题25[/b]
[b]AC_CODE[/b]
const int maxn = 10008 ;
int n , k ;
struct Node{
int x ;
int l , r ;
Node():l(-1),r(-1){}
}tree[maxn];
void FindPath(int t , int sum , vector<int> &path){
if(tree[t].l == -1 && tree[t].r == -1 ){
if(sum + tree[t].x == k){
path.push_back(t) ;
printf("A path is found:") ;
for(int i = 0;i < path.size();i++)
printf(" %d" , path[i]) ;
puts("") ;
path.pop_back() ;
}
return ;
}
else{
if(sum + tree[t].x >= k) return ;
else{
path.push_back(t) ;
FindPath(tree[t].l , sum + tree[t].x , path) ;
FindPath(tree[t].r , sum + tree[t].x , path) ;
path.pop_back() ;
}
}
}
int main(){
while(cin >> n >> k){
int i , w , l , r ;
for(i = 1;i <= n;i++){
scanf("%d%d%d" , &w , &l , &r) ;
tree[i].x = w ;
tree[i].l = min(l , r) ;
tree[i].r = max(l , r) ;
}
vector<int> path ;
puts("result:") ;
FindPath(1 , 0 , path) ;
}
return 0 ;
}
相关文章推荐
- *【九度OJ1368】|【剑指offer25】二叉树中和为某一值的路径
- 九度 题目1368:二叉树中和为某一值的路径
- 【剑指Offer面试编程题】题目1368:二叉树中和为某一值的路径--九度OJ
- 【剑指Offer面试题】 九度OJ1368:二叉树中和为某一值的路径
- 【剑指Offer面试编程题】题目1368:二叉树中和为某一值的路径--九度OJ
- 题目1368:二叉树中和为某一值的路径
- 【剑指Offer面试题】 九度OJ1368:二叉树中和为某一值的路径
- 1368:二叉树中和为某一值的路径 @jobdu
- 题目1368:二叉树中和为某一值的路径
- 九度OJ-题目1368:二叉树中和为某一值的路径
- 题目1368:二叉树中和为某一值的路径
- 题目1368:二叉树中和为某一值的路径
- 九度 题目1368:二叉树中和为某一值的路径
- 剑指Offer - 九度1368 - 二叉树中和为某一值的路径
- 题目1368:二叉树中和为某一值的路径
- 九度 题目1368:二叉树中和为某一值的路径
- 题目1368:二叉树中和为某一值的路径-九度
- 题目1368:二叉树中和为某一值的路径
- 剑指OFFER之二叉树中和为某一值的路径(九度OJ1368)
- 【剑指offer】之二叉树中和为某一值的路径