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

    地址 https://www.acwing.com/problem/content/description/45/

    输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。

    从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。

    给出二叉树如下所示,并给出num=225
         / 
        4   6
       /   / 
      12  13  6
     /      / 
    9    1  5   1
    
    输出:[[5,4,12,1],[5,6,6,5]]

    树的处理 一半是递归

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
       vector<vector<int>> ret;
    
    void findPathInner(TreeNode* root, int sum, vector<int> v)
    {
        sum -= root->val;
        v.push_back(root->val);
    
        if (sum == 0 && root->left == NULL && root->right == NULL) {
            ret.push_back(v);
            return;
        }
    
        if(sum <0 ) return;
    
    
        if (root->left != NULL) {
            findPathInner(root->left, sum, v);
        }
        if (root->right != NULL) {
            findPathInner(root->right, sum, v);
        }
    
    }
    
    
    vector<vector<int>> findPath(TreeNode* root, int sum) {
        if (root == NULL) return ret;
        if (sum == 0) return ret;
    
        vector<int> v;
        sum -= root->val;
        v.push_back(root->val);
        if (sum < 0) return ret;
        if (sum == 0) {
            ret.push_back(v);
            return ret;
        }
        if (root->left != NULL) {
            findPathInner(root->left, sum, v);
        }
        if (root->right != NULL) {
            findPathInner(root->right, sum, v);
        }
    
        return ret;
    }
    
    
    };
    作 者: itdef
    欢迎转帖 请保持文本完整并注明出处
    技术博客 http://www.cnblogs.com/itdef/
    B站算法视频题解
    https://space.bilibili.com/18508846
    qq 151435887
    gitee https://gitee.com/def/
    欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    ABP框架
    ABP框架
    VS2017调试器无法附加到IIS进程(w3wp.exe)
    c# 动态实例化一个泛型类
    在CentOS7.1上安装Gitlab碰到的问题及解决方法
    MongoDB
    在ABP模板工程中使用MySql
    增加VirtualBox虚拟机的磁盘空间大小(Host:Win7 VirtualBox5.0.16 VM:Win10)
    Spring中Bean及@Bean的理解
    @Bean 的用法
  • 原文地址:https://www.cnblogs.com/itdef/p/11407027.html
Copyright © 2011-2022 走看看