题目描述
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.
For example:Given the below binary tree andsum = 22,
5
/ \
4 8
/ / \
11 13 4
/ \ \
7 2 1
return true, as there exist a root-to-leaf path5->4->11->2which sum is 22.
----------------------------------------------------------------------------------------------------
您的代码已保存
/** *
Definition for binary tree *
struct TreeNode { *
int val; *
TreeNode *left; *
TreeNode *right; *
TreeNode(int x) : val(x), left(NULL), right(NULL) {} *
}; */class
Solution {public: bool
hasPathSum(TreeNode *root, int
sum) { int
m = 0; return
preorder(root, sum, m); } bool
preorder(TreeNode *root, int
sum, int
m){ if
(root == nullptr || (m+root->val > sum && !root->left && !root->right)) return
false; if
(m+root->val == sum && !root->left && !root->right) return
true; m
= m + root->val; return
preorder(root->left, sum, m) || preorder(root->right, sum, m); }};

本文介绍了一种算法,用于判断二叉树中是否存在从根节点到叶子节点的路径,使得这条路径上所有节点值之和等于给定的数值。通过递归方式遍历二叉树,检查路径和是否匹配。
162

被折叠的 条评论
为什么被折叠?



