题解 | #二叉树根节点到叶子节点的所有路径和#

二叉树根节点到叶子节点的所有路径和

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,
};

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务