/**

  • struct TreeNode {
  • int val;
  • struct TreeNode *left;
  • struct TreeNode *right;
  • }; */

class Solution { public: /** * * @param root TreeNode类 * @return int整型 / int sumNumbers(TreeNode root) { if(!root) return 0; // write code here stack stk_val; stack<TreeNode*> stk_node; int res = 0; stk_val.push(root -> val); stk_node.push(root); while(!stk_node.empty()) { int m_val = stk_val.top(); stk_val.pop(); TreeNode* m_node = stk_node.top(); stk_node.pop();

        if(m_node -> left == nullptr && m_node -> right == nullptr)
        {
            res += m_val;
        }
        else
        {
            if(m_node -> left)
            {
                stk_node.push(m_node -> left);
                stk_val.push(m_val * 10 + m_node -> left -> val);
            }
            if(m_node -> right)
            {
                stk_node.push(m_node -> right);
                stk_val.push(m_val * 10 + m_node -> right -> val);
            }
        }
    }
    return res;
    
}

};