题目:
来源:路径总和
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。
示例:
解题思路及代码
1. 思路
采用递归法遍历二叉树,若当前结点不为叶子结点,则对其左右子结点分别调用hasPathSum函数,同时sum值要减去当前结点的值,若当前结点为叶子结点,则判断sum值此时是否为0.若为0,则存在目标路径。
2.代码
var hasPathSum = function(root, sum) {
if(root == null) {
return false;
}
sum -= root.val;
if (root.left == null && root.right == null) {
return (sum == 0); // 这个点学到了!!!
}
return hasPathSum(root.left ,sum) || hasPathSum (root.right,sum);
}
以上是递归思想,后续补上迭代思想,挖个坑