现在的位置: 首页 > 综合 > 正文

Sum Root to Leaf Numbers

2017年12月23日 ⁄ 综合 ⁄ 共 619字 ⁄ 字号 评论关闭

Given a binary tree containing digits from 0-9 only,
each root-to-leaf path could represent a number.

An example is the root-to-leaf path 1->2->3 which
represents the number 123.

Find the total sum of all root-to-leaf numbers.

For example,

    1
   / \
  2   3

The root-to-leaf path 1->2 represents
the number 12.

The root-to-leaf path 1->3 represents
the number 13.

Return the sum = 12 + 13 = 25.

基本题:

    int sumNumbers(TreeNode* root)
{
    int total=0;
	calSum(root,total,0);
	return total;
}
void calSum(TreeNode* root,int& tot,int cur)
{
	if (!root)
		return;
	cur=cur*10+root->val;
	if (!root->left&&!root->right)
	{
		tot+=cur;
		return;
	}
	if(root->left)
		calSum(root->left,tot,cur);
	if(root->right)
		calSum(root->right,tot,cur);
}
【上篇】
【下篇】

抱歉!评论已关闭.