剑指 Offer II 049. 从根节点到叶节点的路径数字之和

86 阅读1分钟

剑指 Offer II 049. 从根节点到叶节点的路径数字之和

例子 帮助理解题目意思

image.png

代码实现

思路:

dfs深度遍历,用一个参数去记录当前路径展示的数字,直到自己是叶子节点才会返回path值

var sumNumbers = function (root) {
  const dfs = (root, path) => {
    if (root == null) {
      return 0;
    }
    path = path * 10 + root.val;
    if (!root.left && !root.right) {
      return path;
    }
    return dfs(root.left, path) + dfs(root.right, path);
  };
  return dfs(root, 0);
};

代码调试

var obj = {
  val: 4,
  left: {
    val: 9,
    left: {
      val: 5,
      left: null,
      right: null,
    },
    right: {
      val: 1,
      left: null,
      right: null,
    },
  },
  right: {
    val: 0,
    left: null,
    right: null,
  },
};

console.log(sumNumbers(obj));