zoukankan      html  css  js  c++  java
  • LeetCode:Path Sum II

          Given a binary tree and a sum, find all root-to-leaf paths where each path's


    sum equals the given sum.


    For example:


    Given the below binary tree and sum = 22,

                  5
                 / 
                4   8
               /   / 
              11  13  4
             /      / 
            7    2  5   1
    

    return

    [
       [5,4,11,2],
       [5,8,4,5]
    ]
    
    解题思路:
    
        通过遍历树保存从根到叶子节点的路径和路径和。然后推断其和是否等于sum就可以.
    
    解题代码:
    
    /**
     * Definition for binary tree
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        void dfs(TreeNode *rt,long long sum,vector<vector<int> > &ans,vector<int> &path)
        {
            path.push_back(rt->val);
            if (rt->left == rt->right && rt->left == NULL)
            {
                if (sum == rt->val)
                    ans.push_back(vector<int>(path.begin(),path.end()));
                path.erase(path.end()-1);
                return ;
            }
            if (rt->left)
                dfs(rt->left,sum - rt->val,ans,path);
            if (rt->right)
                dfs(rt->right,sum - rt->val,ans,path);
            path.erase(path.end()-1);
        }
        vector<vector<int> > pathSum(TreeNode *root, int sum) 
        {
            vector<vector<int> > ans ;
            if (!root)
                return ans ;
            vector<int> path;
            dfs(root,sum,ans,path);
            return ans ;
        }
    };
    


     
查看全文
  • 相关阅读:
    自学python day 10 函数的动态参数、命名空间、作用域
    老男孩 python 自学 打印05 dict 复习总结
    老男孩python 自学day09 函数开始
    今天
    day 03
    eclipse如何安装配置tomcat
    windows上配置maven环境
    如何创建ssh key使电脑和Github关联在一起
    怎么将本地文件上传到github
    使用git工具上传代码到github
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10515912.html
  • Copyright © 2011-2022 走看看