#include<iostream>
using namespace std;
#define maxSize 100
struct TreeNode{
int data;
TreeNode *left;
TreeNode *right;
}
void printPath(TreeNode *root, int sum){
int arr[maxSize];
helper(root,sum,arr,0);
}
void print(int arr[], int top){
for(int i=0;i<top;i++)printf("%d ",arr[i]);
}
void helper(Tree *root, int sum, int arr[], int top){
if(root == null) return;
arr[top++] = root.data;
sum-=root.data;
if(root.left == null && root.right == null){
if(sum==0)print(arr,top);
} else {
helper(root.left,sum,arr,top);
helper(root.right,sum,arr,top);
}
}
int main(){
TreeNode *root;
printPath(root,20);
}
<div class="iteye-blog-content-contain" style="font-size: 14px"></div>
本文介绍了一个用于寻找二叉树中所有路径之和等于特定值的算法实现。该算法采用递归方式遍历二叉树的每个节点,并记录从根节点到当前节点的路径,如果达到叶子节点且路径和等于给定值,则打印这条路径。
400

被折叠的 条评论
为什么被折叠?



