思路:还是深度搜索树,当前节点如果是叶子节点,则计算出从根到叶子节点表示的数(这个数在路径中一直动态存储),加到总和中。
code:
class Solution {
public:
void dfs(TreeNode *p,int &sum,int curNum){
if(p->left == NULL && p ->right == NULL){
curNum *= 10;
curNum += p->val;
sum += curNum;
return;
}
if(p->left)
dfs(p->left,sum,curNum*10+p->val);
if(p->right)
dfs(p->right,sum,curNum*10+p->val);
}
int sumNumbers(TreeNode *root) {
if(root){
int ret = 0;
dfs(root,ret,0);
return ret;
}
return 0;
}
};
本文详细介绍了如何使用深度搜索树求和算法,通过递归遍历树结构,计算从根节点到叶子节点的路径上的数值之和。具体实现包括定义深度搜索函数和调用该函数以获取总和。
202

被折叠的 条评论
为什么被折叠?



