We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
出处 LeetCode 算法第129题 给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。 例如,从根到叶子节点路径 1->2->3 代表数字 123。 计算从根到叶子节点生成的所有数字之和。 说明: 叶子节点是指没有子节点的节点。 示例 1: 输入: [1,2,3] 1 / \ 2 3 输出: 25 解释: 从根到叶子节点路径 1->2 代表数字 12. 从根到叶子节点路径 1->3 代表数字 13. 因此,数字总和 = 12 + 13 = 25. 示例 2: 输入: [4,9,0,5,1] 4 / \ 9 0 / \ 5 1 输出: 1026 解释: 从根到叶子节点路径 4->9->5 代表数字 495. 从根到叶子节点路径 4->9->1 代表数字 491. 从根到叶子节点路径 4->0 代表数字 40. 因此,数字总和 = 495 + 491 + 40 = 1026.
出处 LeetCode 算法第129题
给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。
0-9
例如,从根到叶子节点路径 1->2->3 代表数字 123。
1->2->3
123
计算从根到叶子节点生成的所有数字之和。
说明: 叶子节点是指没有子节点的节点。
示例 1:
输入: [1,2,3] 1 / \ 2 3 输出: 25 解释: 从根到叶子节点路径 1->2 代表数字 12. 从根到叶子节点路径 1->3 代表数字 13. 因此,数字总和 = 12 + 13 = 25.
示例 2:
输入: [4,9,0,5,1] 4 / \ 9 0 / \ 5 1 输出: 1026 解释: 从根到叶子节点路径 4->9->5 代表数字 495. 从根到叶子节点路径 4->9->1 代表数字 491. 从根到叶子节点路径 4->0 代表数字 40. 因此,数字总和 = 495 + 491 + 40 = 1026.
既然我们需要到达每一个叶节点,那么就可以采用DFS(深度递归遍历)的方式,创建一个数组来存放所有结果
/** * @param {TreeNode} root * @return {number} */ function DFS(resArray, root, str) { if (root) { var current = str + root.val; if (!root.left && !root.right) { resArray.push(current); } else { DFS(resArray, root.left, current); DFS(resArray, root.right, current); } } } var sumNumbers = function (root) { var resArray = []; var str = ''; DFS(resArray, root, str); var res = 0; for (var i = 0; i < resArray.length; i++) { res += Number(resArray[i]); } return res; };
The text was updated successfully, but these errors were encountered:
No branches or pull requests
习题
思路
既然我们需要到达每一个叶节点,那么就可以采用DFS(深度递归遍历)的方式,创建一个数组来存放所有结果
解答
The text was updated successfully, but these errors were encountered: