leetcode - Sum Root to Leaf Numbers
2013-11-06 09:25 张汉生 阅读(141) 评论(0) 编辑 收藏 举报
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 void sumNumbers(TreeNode *node, int &totalSum, int curSum){ 13 curSum = curSum *10 + node->val; 14 if (node->left==NULL && node->right==NULL){ 15 totalSum += curSum; 16 return; 17 } 18 if (node->left != NULL) 19 sumNumbers(node->left, totalSum, curSum); 20 if (node->right != NULL) 21 sumNumbers(node->right, totalSum, curSum); 22 } 23 int sumNumbers(TreeNode *root) { 24 // IMPORTANT: Please reset any member data you declared, as 25 // the same Solution instance will be reused for each test case. 26 if (root==NULL) 27 return 0; 28 int sum = 0; 29 sumNumbers(root, sum, 0); 30 return sum; 31 } 32 };