dfs
/*** Definition for a binary tree node.* function TreeNode(val, left, right) {* this.val = (val===undefined ? 0 : val)* this.left = (left===undefined ? null : left)* this.right = (right===undefined ? null : right)* }*//*** @param {TreeNode} root* @return {number}*/var sumNumbers = function(root) {if (!root) return rootlet arr = []let result = 0let dfs = (data, presum) => {if (data) {presum = data.val + presum * 10if (!data.left && !data.right)arr.push(presum)else {dfs(data.left, presum)dfs(data.right, presum)}}}dfs(root, 0)result = arr.reduce((a, b) => {return a + b})return result};
优化一下得到:
/*** Definition for a binary tree node.* function TreeNode(val, left, right) {* this.val = (val===undefined ? 0 : val)* this.left = (left===undefined ? null : left)* this.right = (right===undefined ? null : right)* }*//*** @param {TreeNode} root* @return {number}*/var sumNumbers = function(root) {let dfs = (data, presum) => {if (data === null) return 0presum = data.val + presum * 10if (!data.left && !data.right) {return presum}return dfs(data.left, presum) + dfs(data.right, presum)}return dfs(root, 0)};

