用 DFS 的思路,去递归的判断目标节点的左节点是否是叶子节点,如果是的话,就把全局的 sum 加上目标节点的值。然后继续 DFS 目标节点的左右子节点。
let sumOfLeftLeaves = function (root) {
let sum = 0
let dfs = (node) => {
if (!node) return
if (isLeaf(node.left)) {
sum += node.left.val
}
dfs(node.left)
dfs(node.right)
}
dfs(root)
return sum
}
function isLeaf(node) {
return !!node && !node.left && !node.right
}
计算给定二叉树的所有左叶子之和。
示例:
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/sum-of-left-leaves 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路
用 DFS 的思路,去递归的判断目标节点的左节点是否是叶子节点,如果是的话,就把全局的 sum 加上目标节点的值。然后继续 DFS 目标节点的左右子节点。