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; } } };