跳到主要内容

129.求根节点到叶节点数字之和

链接:129.求根节点到叶节点数字之和
难度:Medium
标签:树、深度优先搜索、二叉树
简介:计算从根到叶子节点生成的所有数字之和。

题解 1 - typescript

  • 编辑时间:2020-10-29
  • 执行用时:112ms
  • 内存消耗:42.6MB
  • 编程语言:typescript
  • 解法介绍:递归整合数组,深度优先。
function sumNumbers(root: TreeNode | null): number {
if (root === null) return 0;
return find(root).reduce((total, cur) => total + Number(cur.join('')), 0);
function find(root: TreeNode): number[][] {
const val = root.val;
const ans: number[][] = [];
if (root.left === null && root.right === null) {
ans.push([val]);
}
if (root.left !== null) {
ans.push(...find(root.left).map(v => [val, ...v]));
}
if (root.right !== null) {
ans.push(...find(root.right).map(v => [val, ...v]));
}
return ans;
}
}