码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode_129题——Sum Root to Leaf Numbers(基于DFS的递归)

时间:2015-06-05 12:12:04      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:

Sum Root to Leaf Numbers

 Total Accepted: 45133 Total Submissions: 148808My Submissions

 

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.

 

Hide Tags
 Tree Depth-first Search
Have you met this question in a real interview? 
Yes
 
No
 

Discuss

       这道题采用基于DFS的递归来做。

#include<iostream>
using namespace std;
struct TreeNode
{
	int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
void digui(TreeNode* root,int len,int &result)
{
	if(root->left==NULL&&root->right==NULL)
	{
		result=result+len;
		return;
	}
	if(root->left!=NULL)
	{
		digui(root->left,len*10+root->left->val,result);
	}
	if(root->right!=NULL)
	{
		digui(root->right,len*10+root->right->val,result);
	}
	return;
}
int sumNumbers(TreeNode* root){
	int last=0;
	if(root==NULL)
		return 0;
	digui(root,root->val,last);
	return last;
}
int main()
{
	TreeNode* root=new TreeNode(0);
	root->left=new TreeNode(1);
	root->right=new TreeNode(3);
	cout<<sumNumbers(root)<<endl;
}

  

 

leetcode_129题——Sum Root to Leaf Numbers(基于DFS的递归)

标签:

原文地址:http://www.cnblogs.com/yanliang12138/p/4554111.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!