152 字
1 分钟
LeetCode 面试经典150题 [71/150 求个节点到叶节点数字之和]
题目描述
给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。
每条从根节点到叶节点的路径都代表一个数字:
例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。
计算从根节点到叶节点生成的 所有数字之和 。
叶节点 是指没有子节点的节点。
示例 1:
输入:root = [1,2,3]输出:25解释:从根到叶子节点路径 1->2 代表数字 12从根到叶子节点路径 1->3 代表数字 13因此,数字总和 = 12 + 13 = 25示例 2:
输入:root = [4,9,0,5,1]输出:1026解释:从根到叶子节点路径 4->9->5 代表数字 495从根到叶子节点路径 4->9->1 代表数字 491从根到叶子节点路径 4->0 代表数字 40因此,数字总和 = 495 + 491 + 40 = 1026个人C++解答
还是老样子,看题解一眼就会,自己一写就不会
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), * right(right) {} * }; */class Solution {public: int dfs(TreeNode* root, int prevSum) { if(root == nullptr) return 0; int sum = prevSum * 10 + root->val; if(root->left == nullptr && root->right == nullptr){ return sum; }else{ return dfs(root->left,sum) + dfs(root->right,sum); } } int sumNumbers(TreeNode* root) { return dfs(root,0); }}; 分享
如果这篇文章对你有帮助,欢迎分享给更多人!
LeetCode 面试经典150题 [71/150 求个节点到叶节点数字之和]
https://ericonline.cn/posts/leetcode-面试经典150题-71-150-求个节点到叶节点数字之和/ 部分信息可能已经过时
相关文章 智能推荐
1
LeetCode 面试经典150题 [42/150 双数之和]
LeetCode 题解 2024-06-26
2
LeetCode 面试经典150题 [30/150 三数之和]
LeetCode 题解 2024-06-24
3
LeetCode 面试经典150题 [72/150 完全二叉树的节点个数]
LeetCode 题解 2024-07-30
4
LeetCode 面试经典150题 [26/150 两数之和 II - 输入有序数组]
LeetCode 题解 2024-06-23
5
LeetCode 面试经典150题 [18/150 整数转罗马数字]
LeetCode 题解 2024-06-20