您的位置:首页 > 其它

LeetCode129 Sum Root to Leaf Numbers

2016-01-03 16:57 351 查看

题目链接:

https://leetcode.com/problems/sum-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.


题目分析:

深搜的变形。利用递归先序遍历。当root->left==NULL && root->right==NULL。即表明root为叶子节点。

代码:

class Solution {
public:
int result=0;
void preOrderTraversal(TreeNode* root,int curNum){
if(root->left==NULL && root->right==NULL){
result+=curNum;
}
else{
curNum*=10;
if(root->left!=NULL){
preOrderTraversal(root->left,curNum+root->left->val);
}
if(root->right!=NULL){
preOrderTraversal(root->right,curNum+root->right->val);
}
}
}
int sumNumbers(TreeNode* root) {
if(root==NULL)
{
return result;
}
preOrderTraversal(root,root->val);
return result;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息