码迷,mamicode.com
首页 > 其他好文 > 详细

二叉树路径和

时间:2015-04-06 15:22:28      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

//一棵二叉树每个结点包含一个整数,请设计一个算法输出所有满足条件的路径:此路径上的所有结点之和等于给定值。注意此类路径不要求必须从根节点开始
void printBuffer(vector<int> buffer, int level, int i1)
{
    for (int i=level;i<=i1;i++)
    {
        cout<<buffer[i]<<" ";
    }
    cout<<endl;
}
void findTarget(TreeNode *head, int target, vector<int> buffer, int level)
{
    if(head==NULL)return;
    int curSum=target;
    buffer.push_back(head->data);
    for (int i=level;i>=0;i--)
    {
        curSum-=buffer[i];
        if(curSum==0)
            printBuffer(buffer, i, level);
    }
    findTarget(head->left, target, buffer, level+1);
    buffer.pop_back();
    level--;
    findTarget(head->right, target, buffer, level+1);
}

 

二叉树路径和

标签:

原文地址:http://www.cnblogs.com/Vae98Scilence/p/4395949.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!