• 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]
    ]
    
    Hide Tags
     Tree Depth-first Search
     
    /**
     * Definition for binary tree
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    private:
        vector<vector<int> > paths;
    public:
        void dfs(TreeNode *node,int sum,int csum,vector<int> onePath){    //a能为引用
            if(node==NULL)
                return;
            if(node->left==NULL && node->right==NULL){
                if(node->val+csum==sum){
                    onePath.push_back(node->val);
                    paths.push_back(onePath);
                }
                return;
            }
            onePath.push_back(node->val);
            dfs(node->left,sum,csum+node->val,onePath);
            dfs(node->right,sum,csum+node->val,onePath);
        }
    
        vector<vector<int> > pathSum(TreeNode *root, int sum) {
            paths.clear();
            vector<int> onePath;
            dfs(root,sum,0,onePath);
            return paths;
        }
    };
  • 相关阅读:
    linux 静态库和动态库(共享库)的制作与使用
    实现linux mkdir命令
    行间距和文本样式
    单位和字体
    html标签2
    css层叠样式表
    html标签
    html简介
    数据数组
    Redis的使用
  • 原文地址:https://www.cnblogs.com/li303491/p/4110458.html
Copyright © 2020-2023  润新知