节点数值总和等于某个给定值的所有路径

struct TreeNode
{
int val;
TreeNode *left;
TreeNode *right;
};
int depth(TreeNode *node)
{
if(node==NULL)
return 0;
return 1+max(depth(node->left),depth(node->right));
}


void print(int *path,int start ,int end)
{
for(int i=start;i<=end;i++)
{
cout<<path[i]<<" ";
}
cout<<endl;
}


void findSum(TreeNode *node,int sum,int* path,int level)
{
if(node==NULL)
return;
path[level]=node->val;
int t=0;
for(int i=level;i>=0;i--)
{
t+=path[i];
if(t==sum)
print(path,i,level);
}
findSum(node->left,sum,path,level+1);
findSum(node->right,sum,path,level+1);
path[level]=INT_MIN;
}


void findSum(TreeNode *node,int sum)
{
int depth1=depth(node);
int *path=new int[depth1];
findSum(node,sum,path,0);






}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值