题目:
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。
leetcode原题链接
思路: 从上往下记录每一层每个结点累加的路径值,如果他是叶子结点,且符合条件则返回。遍历完所有结点,没有就false结束。
function hasPathSum(root, targetSum) {
if (!root) {
return false;
}
let queque = [];
queque.push({root, val: root.val});
while (queque.length) {
const obj = queque.shift();
const value = obj.val;
if (!root.left && !root.right && value === targetSum) {
return true;
} else {
if (root.left) queque.push({ root: root.left, val: root.left.val + value });
if (root.right) queque.push({ root: root.right, val: root.right.val + value });
}
}
}
许多道理,是旁人看似与你只说一两句话,事实上是拿他的整个人生在讲理。有没有用,且听了,又不亏钱。若有赚,就像白喝一碗不花钱的酒水。