LeetCode 112. Path Sum
Description:
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.
Example:
For example:
Given the below binary tree and sum = 22,
1
2
3
4
5
6
7 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.
分析:
首先判断根节点是否为空,若为空,则返回false,表示肯定不能找到一条路径上的数之和等于sum;
若不空,则判断左右子树是否为空,若为空,则比较根节点的数是否等于sum,若为真,返回true;反之返回false;
若前面都不满足条件,则证明树的高度至少为2,递归左子树,将sum的值改成sum - root->val
;递归右子树,将sum的值改成sum - root->val
,即可求解。
代码如下:
1 |
|