首页 > 其他 > 详细

[LeetCode] Path Sum II

时间:2014-11-13 00:13:35      阅读:327      评论:0      收藏:0      [点我收藏+]

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]
]


path sum 的升级版,思路一样,木有难度。
void pathSum2Iter(TreeNode *node, int sum, vector<int> t, vector<vector<int>> &ret) {
    if (!node) return;
    int val = sum - node->val;
    t.push_back(node->val);
    if (val == 0 && (!node->left && !node->right)) {
        ret.push_back(t);
        return;
    }
    pathSum2Iter(node->left, val, t, ret);
    pathSum2Iter(node->right, val, t, ret);
}

vector<vector<int> > pathSum2(TreeNode *root, int sum) {
    vector<vector<int>> ret;
    vector<int> t;
    pathSum2Iter(root, sum, t, ret);
    return ret;
}

 

 

[LeetCode] Path Sum II

原文:http://www.cnblogs.com/agentgamer/p/4093720.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!