Sum Root to Leaf Numbers
MediumTreeDepth-First SearchBinary Tree
Solution
import { TreeNode } from '@algorithm/lib';
export function sumNumbers(root: TreeNode | null): number {
if (root === null) {
return 0;
}
let answer = 0;
function sumRootToLeaf(node: TreeNode, prev: number) {
const current = prev * 10 + node.val;
if (node.left === null && node.right === null) {
answer += current;
return;
}
if (node.left) {
sumRootToLeaf(node.left, current);
}
if (node.right) {
sumRootToLeaf(node.right, current);
}
}
sumRootToLeaf(root, 0);
return answer;
}