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

京公网安备 11010502036488号