题解 | #二叉树根节点到叶子节点和为指定值的路径#
二叉树根节点到叶子节点和为指定值的路径
http://www.nowcoder.com/practice/840dd2dc4fbd4b2199cd48f2dadf930a
class Solution { public: /** * * @param root TreeNode类 * @param sum int整型 * @return int整型vector<vector<>> */ vector<vector<int> > pathSum(TreeNode* root, int sum) { vector<vector<int> > v; if(!root) return v; if(root->val==sum) { if(!root->left&&!root->right) { vector<int> tmp; tmp.push_back(root->val); v.push_back(tmp); return v; } } vector<vector<int> > t1,t2; t1=pathSum(root->left, sum-root->val); t2=pathSum(root->right, sum-root->val); if(t1.size()!=0) for(auto i : t1) { i.insert(i.begin(),root->val); v.push_back(i); } if(t2.size()!=0) for(auto i : t2) { i.insert(i.begin(),root->val); v.push_back(i); } return v; } };
使用递归解法,注意题目中没说val是正负数,所以一定要遍历到叶子节点.