递归遍历
/** * 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 travel(TreeNode* root , int num) { if(root -> left == nullptr && root -> right == nullptr) { return num * 10 + root -> val; } int left = 0 , right = 0; if(root -> left) left = travel(root -> left , num*10 + root -> val); if(root -> right) right = travel(root -> right , num*10 + root -> val); return left + right; } int sumNumbers(TreeNode *root) { if(root == nullptr) return 0; return travel(root , 0); } };