sum root to leaf numbers

sum root to leaf numbers

DFS

DFS helps me resolve nearly half of the questions in leetcode.Using result to save the numbers when we reach the leaf. if we did not reach the leaf make current value 10 times and plus the current nood's value, then DFS it's left and right child if it has one.

 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 private:
12 int result;
13 public:
14     int sumNumbers(TreeNode *root) {
15         result = 0;
16         if ( !root ) {
17             return result;
18         }
19         DFS(root,0);
20         return result;
21     }
22     void DFS( TreeNode* root, int val ) {
23         val *= 10;
24         val += root->val;
25         if ( !root->left && !root->right ) {
26             result += val;
27             return;
28         }
29         if ( root->left) {
30             DFS(root->left,val);
31         }
32         if ( root->right ) {
33             DFS(root->right,val);
34         }
35     }
36 };

Loading Disqus comments...
Table of Contents