LeetCode OJ:Sum Root to Leaf Numbers
来源:互联网 发布:陈明道知乎 编辑:程序博客网 时间:2024/04/24 16:56
Sum Root to Leaf Numbers
Total Accepted: 5395 Total Submissions: 19143My SubmissionsGiven a binary tree containing digits from 0-9
only, each root-to-leaf path could represent a number.
An example is the root-to-leaf path 1->2->3
which represents the number 123
.
Find the total sum of all root-to-leaf numbers.
For example,
1 / \ 2 3
The root-to-leaf path 1->2
represents the number 12
.
The root-to-leaf path 1->3
represents the number 13
.
Return the sum = 12 + 13 = 25
.
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ #include <algorithm>class Solution{vector<vector<int>> SUM;int length;public:int add(vector<vector<int>> store){vector<int> total;int v,c=0;for(int i=1;i<=length;i++){v=c;;for(int j=0;j<store.size();j++){if(store[j].size()>=i){v+=store[j][store[j].size()-i];}}c=v/10;total.push_back(v%10);}if(c)total.push_back(c);string sum="";char t[4];for(int i=total.size()-1;i>=0;i--){sprintf(t,"%d",total[i]);sum+=t;}return atoi(sum.c_str());}void dfs(TreeNode *root,vector<int> store){if(root==NULL)return;store.push_back(root->val);if(root->left==NULL&&root->right==NULL){length=length<store.size()?store.size():length;SUM.push_back(store);return;}dfs(root->left,store);dfs(root->right,store);}int sumNumbers(TreeNode *root){if(!root)return 0;vector<int> t;length=0;dfs(root,t);return add(SUM);}};
简约版
/** * 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 sumNumbers(TreeNode *root) { return dfs(root,0); }private: int dfs(TreeNode *root,int sum){ if(!root)return 0; if(root->left==NULL&&root->right==NULL) return sum*10+root->val; return dfs(root->left,sum*10+root->val)+ dfs(root->right,sum*10+root->val); }};
0 0
- 【LeetCode OJ】Sum Root to Leaf Numbers
- LeetCode OJ:Sum Root to Leaf Numbers
- LeetCode OJ - Sum Root to Leaf Numbers
- LeetCode OJ Sum Root to Leaf Numbers
- LeetCode OJ-129.Sum Root to Leaf Numbers
- Leetcode OJ 129 Sum Root to Leaf Numbers [Medium]
- 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
- Javascript设计模式 笔记
- 常用经典shell脚本
- 操练驱动学习:程序员如何高效学习新的编程语言
- POJ 1860 Currency Exchange
- POJ2152 Fire 树形DP
- LeetCode OJ:Sum Root to Leaf Numbers
- 深入理解linux自旋锁
- 不要随意重装Windows操作系统
- AFNetworking速成教程(1)
- 【Java并发编程】并发新特性—信号量Semaphore(含代码)
- 系出名门Android(5) - 控件(View)之TextView, Button, ImageButton, ImageView, CheckBox
- 基于visual Studio2013解决算法导论之003雇佣问题
- 批量修改主表和从表的关联字段数据
- Qt之界面实现技巧