题解 | #二叉树根节点到叶子节点的所有路径和#
二叉树根节点到叶子节点的所有路径和
http://www.nowcoder.com/practice/185a87cd29eb42049132aed873273e83
/**
*
* @param root TreeNode类
* @return int整型
*/
function sumNumbers(root) {
// write code here
let total = 0;
let arr = [];
// 前序遍历+回溯
let dfs = (node) => {
if (node == null) {
return;
}
arr.push(node.val);
if (!node.left && !node.right) {
// 当左右都是null时就遍历到本条路的末尾了
total = total + parseInt(arr.join(""));
console.log(arr);
// 最后一个回溯
arr.pop();
}
dfs(node.left);
dfs(node.right);
if (node.left || node.right) {
// 非最后一个节点时回溯
arr.pop();
}
};
dfs(root);
return total;
}
module.exports = {
sumNumbers: sumNumbers,
};