在二元树中找出和为某一值的所有路径

来源:互联网 发布:汤晓燕网络书法展 编辑:程序博客网 时间:2024/05/25 20:00
输入一个整数和一棵二元树。
从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。

打印出和与输入整数相等的所有路径。

void help(int k, int cur, TNode* head, vector<int> vct) {if (k <= cur || !head) {return;}if (!head->left && !head->right && cur + head->data == k) {for (int i = 0; i < vct.size(); ++i) {cout << vct[i] << ' ';}cout << head->data << endl;} else if (cur + head->data < k) {if (head->left) {vct.push_back(head->data);help(k, cur + head->data, head->left, vct);vct.pop_back();}if (head->right) {vct.push_back(head->data);help(k, cur + head->data, head->right, vct);vct.pop_back();}}}void findPath(int k, TNode* head) {vector<int> vct;help(k, 0, head, vct);}


0 0