视频网站程序,wordpress简单网址导航模板,成都专业网站制作网站,太原搜索引擎优化1. 题目
给出一棵二叉树#xff0c;其上每个结点的值都是 0 或 1 。每一条从根到叶的路径都代表一个从最高有效位开始的二进制数。例如#xff0c;如果路径为 0 - 1 - 1 - 0 - 1#xff0c;那么它表示二进制数 01101#xff0c;也就是 13 。
对树上的每一…1. 题目
给出一棵二叉树其上每个结点的值都是 0 或 1 。每一条从根到叶的路径都代表一个从最高有效位开始的二进制数。例如如果路径为 0 - 1 - 1 - 0 - 1那么它表示二进制数 01101也就是 13 。
对树上的每一片叶子我们都要找出从根到该叶子的路径所表示的数字。
以 109 7 为模返回这些数字之和。 输入[1,0,1,0,1,0,1]
输出22
解释(100) (101) (110) (111) 4 5 6 7 22提示
树中的结点数介于 1 和 1000 之间。
node.val 为 0 或 1来源力扣LeetCode 链接https://leetcode-cn.com/problems/sum-of-root-to-leaf-binary-numbers 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
2. 递归
class Solution {int sum 0;int mod 1e97;
public:int sumRootToLeaf(TreeNode* root) {sumRootToLeaf(root,0);return sum;}void sumRootToLeaf(TreeNode* root, int cursum){if(!root)return;cursum % mod;//避免溢出cursum cursum*2 root-val;if(!root-left !root-right)//root是叶子节点{sum cursum;return;}else{sumRootToLeaf(root-left, cursum);sumRootToLeaf(root-right, cursum);}}
};