c***g 发帖数: 472 | 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);
}
} | P**l 发帖数: 3722 | 2 如果这个tree只有个root,值就是你要找的值。
你看看能打印出来不 | l***i 发帖数: 1309 | 3 Your function should return a vector or you need to restore path[]
before making the call to right subtree | h***o 发帖数: 30 | 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<
| c***g 发帖数: 472 | 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);
} |
|