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

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

    思路:深搜(DFS)

    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>>res;
        vector<int> path;
        void DFS(TreeNode*root,int num)
        {
            if(root==NULL) return;
            path.push_back(root->val);
            if(!root->left&&!root->right&&num==root->val)//根节点的左右子树没有,且根节点的值等于num(所求的值),把向量path放入res中即可
                res.push_back(path);
            else//左右子树存在
            {
                if(root->left)
                   DFS(root->left,num-root->val);
                if(root->right)
                    DFS(root->right,num-root->val);
            }
            path.pop_back();//相当于回退 ,弹出去
        }
        vector<vector<int> > FindPath(TreeNode* root,int expectNumber) {
            DFS(root,expectNumber);
            return res;
    
        }
    };
  • 相关阅读:
    Redis主从复制、哨兵Sentinel、集群简单介绍
    Redis集群
    Redis哨兵模式
    Redis主从架构
    Redis持久化方式
    缓存2.2——Redis并发竞争
    DOM内容梳理2
    纯js制作九宫格
    正则表达式内容梳理
    JavaScript之DOM详解
  • 原文地址:https://www.cnblogs.com/wft1990/p/7456375.html
Copyright © 2011-2022 走看看