LeetCode---Sum Root to Leaf Numbers
来源:互联网 发布:javascript 资源 网盘 编辑:程序博客网 时间:2024/05/02 05:04
题目大意:给出一个二叉树,二叉树中每个从根节点到叶子节点的路径表示一个整数,其中路径中的每个节点值表示整数的一个数位,将这些所有整数求和并返回。
算法思想:
1.整体算法思想如同LeetCode---Binary Tree Paths
2.只需将每条路径表示的字符串转化为数字,然后将这些数字加起来。
代码如下:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: int sumNumbers(TreeNode* root) { vector<int> res; if(root==NULL) return 0; string tmp; vector<TreeNode*> nodes; stack<pair<TreeNode*,TreeNode*> > S; bool flag=false; pair< TreeNode*, TreeNode*> cur; S.push(make_pair(root,( TreeNode*)NULL)); while(!S.empty()){ cur=S.top(); S.pop(); if(flag){ while(cur.second!=nodes.back()){ nodes.pop_back(); tmp.erase(tmp.end()-1); } flag=false; } tmp.push_back(cur.first->val+'0'); nodes.push_back(cur.first); if(cur.first->right==NULL&&cur.first->left==NULL){ cout<<"path:"<<tmp<<endl; int a; sscanf(tmp.c_str(),"%d",&a); res.push_back(a); flag=true; } if(cur.first->right!=NULL) S.push(make_pair(cur.first->right,cur.first)); if(cur.first->left!=NULL) S.push(make_pair(cur.first->left,cur.first)); } int sum=0; for(int i=0;i<res.size();++i){ sum+=res[i];}return sum; }};
0 0
- leetcode 86: Sum Root to Leaf Numbers
- [LeetCode] Sum root to leaf numbers
- LeetCode : Sum Root to Leaf Numbers
- [leetcode] Sum Root to Leaf Numbers
- 【leetcode】Sum Root to Leaf Numbers
- LeetCode之sum root to leaf numbers
- leetcode:Sum Root to Leaf Numbers
- [LeetCode]Sum Root to Leaf Numbers
- [Leetcode]Sum Root to Leaf Numbers
- [leetcode]Sum Root to Leaf Numbers
- leetcode Sum Root to Leaf Numbers
- LeetCode-Sum Root to Leaf Numbers
- [leetcode] Sum Root to Leaf Numbers
- LeetCode 129: Sum Root to Leaf Numbers
- LeetCode - Sum Root to Leaf Numbers
- leetcode之Sum Root to Leaf Numbers
- LeetCode | Sum Root to Leaf Numbers
- LeetCode - Sum Root to Leaf Numbers
- Struts面试题
- 前端构建工具gulpjs的使用介绍及技巧
- 黑马程序员---多线程小结
- 初始化GDI+库进行图形图像处理
- 代码测试、调试与优化小结
- LeetCode---Sum Root to Leaf Numbers
- 【日常学习】【状压BFS】codevs2594 解药还是毒药题解
- android使用MD5算法加密密码
- USACO superbull(MST)
- ubuntu10.04安装GMP6.0.0
- 我的第一篇blog-测试功能
- java内存溢出示例(堆溢出、栈溢出)
- UIScrollview嵌套UITableview时,点击Statasubar不能滚动到顶部的问题
- DirectShow play and capture