zoukankan      html  css  js  c++  java
  • 剑指OFFER 二叉树中和为某一值的路径

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

    path数组时刻记录着当前所行走的路径

    只有当遍历到叶子结点的时候进行 求和的判断 看是否能把路径添加到结果数组res中.

    /*
    struct TreeNode {
    	int val;
    	struct TreeNode *left;
    	struct TreeNode *right;
    	TreeNode(int x) :
    			val(x), left(NULL), right(NULL) {
    	}
    };*/
    class Solution {
    public:
        int expect;
        vector<vector<int> >res;
        vector<int> path;
        void recur(TreeNode* node)
        {
            if(node == NULL)return ;
            if(node->left == NULL && node->right == NULL)
            {
                path.push_back(node->val);
                int sum = 0;
                for(int i=0;i<path.size();i++)
                {
                    sum += path[i];
                }
                if(sum == expect)
                {
                    res.push_back(path);
                }
                path.pop_back();
                return ;
            }
            
            
            path.push_back(node->val);
    
            recur(node->left);
            recur(node->right);
            
            path.pop_back();
        }
        vector<vector<int> > FindPath(TreeNode* root,int expectNumber) {
            expect = expectNumber;
            if(root == NULL)return res;
            recur(root);
            return res;
        }
    };
    
  • 相关阅读:
    矩阵运算(二维数组)
    AndroidManifest.xml
    单位和尺寸
    java Map集合类
    http相关
    文件管理与XMl、JSON解析
    Handler与多线程
    App内容分享
    Fragment以及懒加载
    广播接收器与短信
  • 原文地址:https://www.cnblogs.com/virgildevil/p/12199782.html
Copyright © 2011-2022 走看看