输入一颗二叉树的根节点root和一个整数expectNumber,找出二叉树中结点值的和为expectNumber的所有路径。
1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点
2.叶子节点是指没有子节点的节点
3.路径只能从父节点到子节点,不能从子节点到父节点
4.总节点数目为n
方法一:递归遍历,从根节点遍历到叶子节点
class Solution {
vector<vector<int>> ans;
vector<int> path;
public:
vector<vector<int>> FindPath(TreeNode* root,int expectNumber) {
bianli(root, expectNumber);
return ans;
}
void bianli(TreeNode* root, int target){
if(root == NULL){
return;
}
path.push_back(root->val);
target = target - (root->val);
if(!root->left && !root->right && target == 0){
ans.push_back(path);
}
if(root->left) bianli(root->left, target);
if(root->right) bianli(root->right, target);
path.pop_back();
}
};