二叉树根节点到叶子节点的所有路径和
// 存储二叉树根节点到叶子节点的所有路径和
let path: number[] = []
// 存储最终结果的数组
let res: string[] = []
// 递归函数
function traversal(root: TreeNode) {
// 递归结束条件
if (root == null) return
// 存储递归中收集的路径值
path.push(root.val)
//确定单条递归逻辑的时候只有当左右节点都为null就是到了叶子节点(将收集的path存入res数组)
if (root.left == null && root.right == null) {
let a = ''
for (let i = 0
a += path[i].toString()
}
res.push(a)
return
}
// 遍历左子树
if (root.left) {
// path.pop()进行回溯
traversal(root.left!)
}
// 遍历右子树
if (root.right) {
// path.pop()进行回溯
traversal(root.right!)
}
}
function sumNumbers(root: TreeNode): number {
res.length = 0
let count = 0
if (root == null) return 0
traversal(root)
for (let i = 0
count += parseInt(res[i])
}
return count
}