根节点 到叶子节点组成一个数
前序遍历 每层的值都为上一层*10+本层结点的值
int sumNumbers(TreeNode *root) {
int sum=0;
if(root==NULL)
return sum;
return PreOrder(root,sum);
}
int PreOrder(TreeNode* root,int sum){
sum=sum*10+root->val;
if(root->left==NULL&&root->right==NULL)
return sum;
int left=0;
int right=0;
if(root->left!=NULL)
left=PreOrder(root->left,sum);
if(root->right!=NULL)
right=PreOrder(root->right,sum);
return left+right;
}
非递归
int sumNumbers(TreeNode* root) {
if(root == NULL)
return 0;
stack<TreeNode*> s;
int res = 0;
int cur = 0;
TreeNode* p = root;