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

LeetCode:Path Sum II

时间:2014-11-26 11:19:45      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:leetcode   algorithm   

题目描述:

Given a binary tree and a sum, find all root-to-leaf paths where each path‘s sum equals the given sum.

For example:
Given the below binary tree and sum = 22,
              5
             /             4   8
           /   /           11  13  4
         /  \    /         7    2  5   1

return

[
   [5,4,11,2],
   [5,8,4,5]
]

代码:

void search_path(TreeNode * node,int sum,vector<int> temp,vector<vector<int> > &result)
{
    if(node == NULL)
        return;
    temp.push_back(node->val);
    if(node->left == NULL && node->right == NULL)
    {
        int current_sum = 0;
        for(int i = 0;i < temp.size();i++)
            current_sum = current_sum + temp[i];
        if(sum == current_sum)
            result.push_back(temp);
        return;
    }
    if(node->left != NULL)
        search_path(node->left,sum,temp,result);
    if(node->right != NULL)
        search_path(node->right,sum,temp,result);
}

vector<vector<int> > pathSum(TreeNode *root, int sum)
{
    vector<vector<int> > result;
    TreeNode * node = root;
    vector<int> temp;
    search_path(node,sum,temp,result);
    return result;
}


LeetCode:Path Sum II

标签:leetcode   algorithm   

原文地址:http://blog.csdn.net/yao_wust/article/details/41512503

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