
LeetCode 129 求根节点到叶节点数字之和
发布日期:2021-05-11 01:24:27
浏览次数:21
分类:精选文章
本文共 901 字,大约阅读时间需要 3 分钟。
分析递归:利用树的遍历框架锻炼递归思维
在二叉树结构中,我们可以通过递归的方式来解决各种问题。以下是关于树节点数值和的问题分析:
问题描述:树的结构是由多个节点组成的,每个节点有一个值。我们需要从树的根节点开始,沿着父节点的路径,将这些数字相加,得到总和。
解决思路:使用递归遍历树的方法。具体来说,我们可以设计一个辅助函数traverse
,这个函数会接收当前节点的值和当前累加的总和。每次递归调用时,我们会将当前节点的值加到总和中,并将新的累加值传递给子节点。
代码解释:以下是实现这个思路的代码示例。traverse
函数会根据当前节点是否为空来决定是否继续递归。如果是空节点,则返回。否则,我们会将当前节点的值加到累加器中,并依次递归左子节点和右子节点。
伪代码示例:
class Solution { int sumNumbers(TreeNode* root) { int sum = 0; traverse(root, 0, sum); return sum; } void traverse(TreeNode* root, int number, int& sum) { if (root == nullptr) return; number = number * 10 + root->val; traverse(root->left, number, sum); if (root->left == nullptr && root->right == nullptr) { sum += number; } traverse(root->right, number, sum); }}
以上代码实现了树的遍历,通过递归的方式累加每个节点的值。每次递归时,我们会将当前节点的值加到number
中,然后传递给子节点。如果某个节点同时没有左子节点和右子节点,我们就将当前累加的值加到总和中。
发表评论
最新留言
很好
[***.229.124.182]2025年05月06日 02时18分33秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
java.lang.NoClassDefFoundError+ (wrong name)
2023-01-27
java.lang.NoClassDefFoundError: kotlin/reflect/jvm/internal/KotlinReflectionInternalError
2023-01-27
java.lang.NumberFormatException 错误及解决办法
2023-01-27
java农业文化旅游管理平台(ssm)
2023-01-27
java农业物流仓储系统
2023-01-27
java农副产品网上预订系统(ssm)
2023-01-27
java农副产品购物app的设计与开发(ssm)
2023-01-27
java农家乐客户管理系统(ssm)
2023-01-27
java农家乐订购系统(ssm)
2023-01-27
java农户自产自销线上农产品超市(ssm)
2023-01-27
java农贸市场摊位管理系统(ssm)
2023-01-27
Java分布式
2023-01-27
JAVA分布式系统
2023-01-28
java分布式链路追踪;jvm应用监控-skywalking
2023-01-28