剑指office--------二叉树中和为某一值的路径

Posted q1204675546

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指office--------二叉树中和为某一值的路径相关的知识,希望对你有一定的参考价值。

题目描述

输入一颗二叉树的根节点和一个整数,按字典序打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
 
 
 
 1 /*
 2 struct TreeNode {
 3     int val;
 4     struct TreeNode *left;
 5     struct TreeNode *right;
 6     TreeNode(int x) :
 7             val(x), left(NULL), right(NULL) {
 8     }
 9 };*/
10 class Solution {
11 public:
12     void Cal(TreeNode* root,vector<int> way,vector<vector<int> > &ans,int expectNumber,int sum){
13         way.push_back(root->val);
14         if (root->left==NULL&&root->right==NULL){
15             if (sum==expectNumber){
16 //                way.push_back(root->val);
17                 ans.push_back(way);
18                 return ;
19             }
20             return ;
21         }
22 //        if (sum>expectNumber)    return ;
23         if (root->left!=NULL){
24            
25             Cal(root->left,way,ans,expectNumber,sum+root->left->val);
26         }
27         if (root->right!=NULL){
28             
29             Cal(root->right,way,ans,expectNumber,sum+root->right->val);
30         }
31         return ;
32     }
33     vector<vector<int> > FindPath(TreeNode* root,int expectNumber) {
34         
35         vector<vector<int> > ans;
36         if (root==NULL)    return ans;
37         vector<int> way;
38         
39         Cal(root,way,ans,expectNumber,root->val);
40         return ans;
41     }
42 };

 

以上是关于剑指office--------二叉树中和为某一值的路径的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer---二叉树中和为某一值的路径

剑指OFFER 二叉树中和为某一值的路径

剑指offer--31.二叉树中和为某一值的路径

剑指offer 二叉树中和为某一值的路径

剑指offer之二叉树中和为某一值的路径

二叉树中和为某一值的路径-剑指Offer