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


    题目描述

    输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。

    代码

    /*
    struct TreeNode {
    	int val;
    	struct TreeNode *left;
    	struct TreeNode *right;
    	TreeNode(int x) :
    			val(x), left(NULL), right(NULL) {
    	}
    };*/
    class Solution {
        int en;
        vector<vector<int>> ans;
        vector<int> v;
    public:
        vector<vector<int> > FindPath(TreeNode* root,int expectNumber) {
            this->en = expectNumber;
            dfs(root, 0);
            return ans;
        }
        
        void dfs(TreeNode* root, int val) {
            if (root == NULL) {
                return;
            }
            v.push_back(root->val);
            val += root->val;
            if (root->left == NULL && root->right == NULL) {
                if (val == en && v.size() > 0) {
                    ans.push_back(v);
                }
            } else {
            	dfs(root->left, val);
            	dfs(root->right, val);
            }
            v.pop_back();
        }
    };
    
  • 相关阅读:
    [转]男人25岁之前应该懂得的21个道理
    family album U.S.A 05
    Humour
    Pretty Boy
    [转]男人本色.女人风韵
    电话英语
    搞不懂的女人
    family album U.S.A 03
    [转]The flame of love(爱的火焰)
    四季花开!
  • 原文地址:https://www.cnblogs.com/jecyhw/p/6541414.html
Copyright © 2020-2023  润新知