题解 | #二叉树中和为某一值的路径(二)#

二叉树中和为某一值的路径(二)

http://www.nowcoder.com/practice/b736e784e3e34731af99065031301bca

struct TreeNode {
	int val;
	struct TreeNode *left;
	struct TreeNode *right;
	TreeNode(int x) :
			val(x), left(NULL), right(NULL) {
	}
};*/
class Solution {
public:
    vector<vector<int> >ret;
    vector<int>path;
    void dfs(TreeNode* root,int sum){
        path.push_back(root->val);//加入该值
        if(sum==root->val&&!root->left&&!root->right){
            ret.push_back(path);//如果叶节点值刚好减完,则该路径是正确的,加入结果集中
        }
        //左右结点不为空,可以深搜
        if(root->left)dfs(root->left,sum-root->val);
        if(root->right)dfs(root->right,sum-root->val);
        path.pop_back();//到这一步需要回溯
    }
    vector<vector<int>> FindPath(TreeNode* root,int expectNumber) {
        if(!root)return ret;//为空直接返回

        dfs(root,expectNumber);
        return ret;
    }
};
全部评论

相关推荐

牛客51274894...:照片认真的吗,找个专门拍证件照的几十块钱整端正点吧,要不就别加照片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务