本文共 815 字,大约阅读时间需要 2 分钟。
问题: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:sum = 22
, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1
return true, as there exist a root-to-leaf path 5->4->11->2
which sum is 22.
解答:
DFS或者BFS。同时,当本节点是叶子节点才判断和,否则节点为空时返回false
参考:
代码:
class Solution {public: bool hasPathSum(TreeNode *root, int sum) { return DFS(root, 0, sum); } bool DFS(TreeNode *root, int sum, int target) { if(root == NULL) return false; if(root->left == NULL && root->right == NULL) return (target == sum + root->val); return DFS(root->left, sum+root->val, target) || DFS(root->right, sum+root->val, target); }};
转载地址:http://ektsi.baihongyu.com/