113. 路径总和 II

给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。
说明: 叶子节点是指没有子节点的节点。

代码实现:

/**
 * 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:
void preorder(TreeNode* node,int &path_val,vector<int> &path,vector<vector<int> > &result,int &sum)
{
    if(!node)
    return ;
    path_val += node->val;
    path.push_back(node->val);
    if(node->left==NULL && node->right == NULL && path_val == sum)
    {
        result.push_back(path);
    }
    preorder(node->left,path_val,path,result,sum);
    preorder(node->right,path_val,path,result,sum);
    path_val -= node->val;
    path.pop_back();
}
    vector<vector<int>> pathSum(TreeNode* root, int sum) {
        int path_val = 0;
        vector<vector<int> >result;
        vector<int> path;
        preorder(root,path_val,path,result,sum);
        return result;
    }
};

原文地址:https://blog.51cto.com/14472348/2473108

时间: 2024-11-08 15:22:07

113. 路径总和 II的相关文章

LeetCode 113. 路径总和 II(Path Sum II)

题目描述 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / 4 8 / / 11 13 4 / \ / 7 2 5 1 返回: [ [5,4,11,2], [5,8,4,5] ] 解题思路 从树根开始遍历,记录当前路径和,递归向下访问子节点并添加到路径中,若碰到叶节点,判断当前路径和是否等于目标值,若等于就把当前路径加入到结果集中. 代码 1 /** 2 *

113路径总和II

题目: 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 来源: https://leetcode-cn.com/problems/path-sum-ii/ 法一: 自己的代码, 没有官方题解 思路: 递归实现,类似前序遍历 # 执行用时 :44 ms, 在所有 python3 提交中击败了99.18% 的用户 # 内存消耗 :14.2 MB, 在所有 python3 提交中击败了98.55%的用户 # Definition for a binary tree

LeetCode 113 路径总和II

题目 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 思路 采用先序遍历二叉树,可以方便得到各个根节点到叶节点路径,比较目标和. 代码 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(N

Leetcode 113. 路径总和 II

/** * 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>> res; vector<int> aux

113 Path Sum II 路径总和 II

给定一个二叉树和一个和,找到所有从根到叶路径总和等于给定总和的路径.例如,给定下面的二叉树和 sum = 22,              5             / \            4   8           /   / \          11  13  4         /  \    / \        7    2  5   1返回[   [5,4,11,2],   [5,8,4,5]] 详见:https://leetcode.com/problems/path

路径总和 II

给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1返回: [ [5,4,11,2], [5,8,4,5]] code /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *lef

LeetCode 113. Path Sum II路径总和 II (C++)

题目: 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

路径总和I、II、III

1. 112题 题目地址:https://leetcode-cn.com/problems/path-sum/description/ 题目描述:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和. 解决方案:  递归判断 2. (二)113题 题目地址:https://leetcode-cn.com/problems/path-sum-ii/description/ 题目描述:给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等

【LeetCode】113. Path Sum II 基于Java和C++的解法及分析

113. Path Sum II Total Accepted: 80509 Total Submissions: 284188 Difficulty: Medium 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