Redian新闻
>
大侠帮我看看这段程序
avatar
大侠帮我看看这段程序# JobHunting - 待字闺中
c*g
1
给一定一个binary tree, 给定一个值,然后求出从root开始的和为target value的
path
我这段程序为什么不对呢?
void
Tree::findPath(Node* head, int sum, int path[], int level){
if(head == NULL) return;

if(sum == 0) {
for(int i = 0 ; i < level; i++)
std::cout<} else {
path[level] = head->value;
findPath(head->left, sum - head->value, path, level+1);
findPath(head->right, sum - head->value, path, level+1);
}

}
avatar
P*l
2
如果这个tree只有个root,值就是你要找的值。
你看看能打印出来不
avatar
l*i
3
Your function should return a vector or you need to restore path[]
before making the call to right subtree
avatar
h*o
4
先检查sum是否为0就对了

给一定一个binary tree, 给定一个值,然后求出从root开始的和为target value的
path我这段程序为什么不对呢?voidTree::findPath(No........
★ Sent from iPhone App: iReader Mitbbs Lite 7.39

【在 c***g 的大作中提到】
: 给一定一个binary tree, 给定一个值,然后求出从root开始的和为target value的
: path
: 我这段程序为什么不对呢?
: void
: Tree::findPath(Node* head, int sum, int path[], int level){
: if(head == NULL) return;
:
: if(sum == 0) {
: for(int i = 0 ; i < level; i++)
: std::cout<
avatar
c*g
5
改了一下,这下似乎对了
void
Tree::findPath(Node* head, int sum, int path[], int level){
if(head == NULL || sum < head->value ) return;
sum = sum - head->value;
path[level] = head->value;
level++;
if(sum == 0) {
for(int i = 0 ; i < level; i++)
std::cout<std::cout<}

findPath(head->left, sum, path, level);
findPath(head->right, sum, path, level);

}
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。