root-to-leaf


1
/** 2 * Definition for binary tree 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 * }; 9 */ 10 class Solution { 11 public: 12 int sum(int val,TreeNode *root){ 13 int rootval = val + root->val; 14 int temp = val + root->val; 15 if ((root->left) !=NULL) 16 { 17 //temp = rootval*10 + sumNumbers(root->left); 18 temp = sum(rootval*10,root->left); 19 if((root->right) !=NULL) 20 { 21 temp = temp + sum(rootval*10,root->right); 22 } 23 } 24 else if((root->right) !=NULL) 25 { 26 temp = sum(rootval*10,root->right); 27 } 28 return temp; 29 } 30 31 32 int sumNumbers(TreeNode *root) { 33 // Start typing your C/C++ solution below 34 // DO NOT write int main() function 35 if (root == NULL) 36 { 37 return 0; 38 } 39 else 40 { 41 int rootval = root->val; 42 int temp = root->val; 43 if ((root->left) !=NULL) 44 { 45 //temp = rootval*10 + sumNumbers(root->left); 46 temp = sum(rootval*10,root->left); 47 if((root->right) !=NULL) 48 { 49 temp = temp + sum(rootval*10,root->right); 50 } 51 } 52 else if((root->right) !=NULL) 53 { 54 temp = sum(rootval*10,root->right); 55 } 56 return temp; 57 58 } 59 60 61 } 62 };




/**
 * Definition for binary tree
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
        int sum(int val,TreeNode *root){
        int rootval = val + root->val;
        int temp = val + root->val;
        if ((root->left) !=NULL)
        {
            //temp =  rootval*10 + sumNumbers(root->left);
            temp =  sum(rootval*10,root->left);
            if((root->right) !=NULL)
            {
                temp =  temp + sum(rootval*10,root->right);
            }
        }
        else if((root->right) !=NULL)
        {
            temp =  sum(rootval*10,root->right);
        }
        return temp;
    }


    int sumNumbers(TreeNode *root) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        if (root == NULL)
        {
            return 0;
        }
        else
        {
            int rootval = root->val;
            int temp = root->val;
            if ((root->left) !=NULL)
            {
                //temp =  rootval*10 + sumNumbers(root->left);
                temp =  sum(rootval*10,root->left);
                if((root->right) !=NULL)
                {
                    temp =  temp + sum(rootval*10,root->right);
                }
            }
            else if((root->right) !=NULL)
            {
                temp =  sum(rootval*10,root->right);
            }
            return temp;

        }

        
    }
};

 

 

posted @ 2013-05-11 20:55  立春了  Views(146)  Comments(0Edit  收藏  举报