Title Description:
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such this adding up all the values along the Path equals the given sum.
For example:
Given the below binary tree and 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.
is from the root to the leaf, to determine if there is a path to sum.
Ideas:
A typical DFS problem, which accumulates the current number of nodes when traversing.
Implementation code:
public bool Haspathsum (TreeNode root, int sum) { Find (root, 0, sum); return found; } private bool found = false; private void Find (TreeNode node, int sum, int target) { if (found | | node = = NULL) { return; } if (Node.left = = NULL && Node.right = = null) {if (sum + node.val = = target) { found = true; }} Find (node.left, sum + node.val, target); Find (node.right, sum + node.val, target); }
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
Leetcode--Path Sum