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

Path Sum II

时间:2015-07-04 18:21:09      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:

Description:

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

Code:

 1 void pathSum(TreeNode* root, int sum, vector<int>&path,vector< vector<int> >&result)
 2     {
 3         path.push_back(root->val);
 4           if (root->left == NULL && root->right == NULL)
 5             {//如果当前访问结点为叶子结点
 6                 if (root->val == sum)
 7                 {//找到一条路径
 8                     vector<int>v;
 9                    vector<int>::iterator it = path.begin();
10                     for (; it != path.end(); ++it )
11                     {
12                         v.push_back((*it));
13                     }
14                     result.push_back(v);
15                 }
16             }
17             if (root->left!=NULL)
18                 pathSum(root->left, sum-root->val, path,result);
19             if (root->right!=NULL)
20                 pathSum(root->right, sum-root->val, path,result);
21             path.pop_back();
22         
23     }
24     vector<vector<int>> pathSum(TreeNode* root, int sum) {
25         vector< vector<int> >result;
26         if (root==NULL)
27            return result;
28         
29         vector<int>path;
30         pathSum(root,sum,path,result);
31         return result;
32     }

 

Path Sum II

标签:

原文地址:http://www.cnblogs.com/happygirl-zjj/p/4620993.html

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