
正文
LeetCode1022. 从根到叶的二进制数之和
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
题目
class Solution {
public:
int ans = 0;
int sumRootToLeaf(TreeNode* root) {
dfs(root,0);
return ans;
}
void dfs(TreeNode*root,int cur){
if(root== NULL) return ;
if(root->left == NULL && root->right == NULL){
cur += root->val;
ans += cur;
}
dfs(root->left,(cur+root->val)*2);
dfs(root->right,(cur+root->val)*2);
}
};
本题值得二三刷,开始思路是混乱的,想要保存每一条到叶子结点的路径,然后结合将二进制转换成十进制
就算后来想到用先序遍历递归来做,对于递归中保存值处理的不好。
若递归中需要记录之前值,可以通过将该值的信息作为参数来进行传递。






