zoukankan      html  css  js  c++  java
  • LeetCode 113 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.

    Note: A leaf is a node with no children.

    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]
    ]


    c++
    class Solution {
    
    public:
        vector<vector<int> > result;
        
        vector<vector<int> > pathSum(TreeNode* root, int sum) {
            
            if(root==NULL) return result;
            vector<int> a;
            dfs(root,sum,a);
            return result;
            
        }
        
        void dfs(TreeNode* root,int sum,vector<int>a)
        {
            a.push_back(root->val);
            if(root->left==NULL&&root->right==NULL)
            {
                if(sum==root->val)
                    result.push_back(a);
            }
            if(root->left!=NULL)
                dfs(root->left,sum-root->val,a);
            if(root->right!=NULL)
                dfs(root->right,sum-root->val,a);
        }
    };


  • 相关阅读:
    50
    49
    Windows编程之connect函数研究
    48
    C++创建窗口程序初步
    47
    46
    45
    计算机组成原理实验思路
    44(function pointer 2)
  • 原文地址:https://www.cnblogs.com/dacc123/p/9265320.html
Copyright © 2011-2022 走看看