Binary Tree Zigzag Level Order Traversal & Partition List & Letter Combinations of a Phone Number
来源:互联网 发布:ip电话网络拓扑 编辑:程序博客网 时间:2024/05/21 03:26
(1) Binary Tree Zigzag Level Order Traversal
逐层存入一个队列,循环逆序顺序排列:
class Solution {public: vector<vector<int> > zigzagLevelOrder(TreeNode *root) { vector<vector<int>> ret; int flag=0; queue<TreeNode *> que; if(!root) return ret; que.push(root); while(!que.empty()) { vector<int> tmp; int n=que.size(); for(int i=0;i<n;i++) { TreeNode *cur=que.front(); tmp.push_back(cur->val); if(cur->left) que.push(cur->left); if(cur->right) que.push(cur->right); que.pop(); } if(flag==1) { reverse(tmp.begin(),tmp.end()); flag=0; } else { flag=1; } ret.push_back(tmp); } return ret; }};
(2) Partition List
很简单,分解成两个list,一个存比x小的,一个存比x大的:
class Solution {public: ListNode *partition(ListNode *head, int x) { ListNode *lesshead=new ListNode(0); ListNode *greaterhead=new ListNode(1); ListNode *less=lesshead; ListNode *greater=greaterhead; ListNode *cur=head; if(!head) return NULL; while(cur) { if(cur->val<x) { less->next=cur; cur=cur->next; less=less->next; less->next=NULL; } else { greater->next=cur; cur=cur->next; greater=greater->next; greater->next=NULL; } } less->next=greaterhead->next; return lesshead->next; }};
枚举就果断用dfs!!!
class Solution {private:map<char,vector<char>> dict; void filldict() { dict.clear(); dict['2'].push_back('a'); dict['2'].push_back('b'); dict['2'].push_back('c'); dict['3'].push_back('d'); dict['3'].push_back('e'); dict['3'].push_back('f'); dict['4'].push_back('g'); dict['4'].push_back('h'); dict['4'].push_back('i'); dict['5'].push_back('j'); dict['5'].push_back('k'); dict['5'].push_back('l'); dict['6'].push_back('m'); dict['6'].push_back('n'); dict['6'].push_back('o'); dict['7'].push_back('p'); dict['7'].push_back('q'); dict['7'].push_back('r'); dict['7'].push_back('s'); dict['8'].push_back('t'); dict['8'].push_back('u'); dict['8'].push_back('v'); dict['9'].push_back('w'); dict['9'].push_back('x'); dict['9'].push_back('y'); dict['9'].push_back('z');} void dfs(vector<string> &ret, int dep, int maxDep,string stmp,string digits){ if(dep==maxDep) { ret.push_back(stmp); return; } char cur=digits[dep]; for(int i=0;i<dict[cur].size();i++) dfs(ret,dep+1,maxDep,stmp+dict[cur][i],digits); } public: vector<string> letterCombinations(string digits) { vector<string> ret; filldict(); dfs(ret,0,digits.size(),"",digits); return ret; }};
0 0
- Binary Tree Zigzag Level Order Traversal & Partition List & Letter Combinations of a Phone Number
- Leetcode-Letter Combinations of a Phone Number Add to List
- LeetCode: Binary Tree Zigzag Level Order Traversal
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Zigzag Level Order Traversal
- [Leetcode] Binary Tree Zigzag Level Order Traversal
- Leetcode: Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Zigzag Level Order Traversal
- [LeetCode] Binary Tree Zigzag Level Order Traversal
- [Leetcode] Binary Tree Zigzag Level Order Traversal
- Binary Tree Zigzag Level Order Traversal
- 【leetcode】Binary Tree Zigzag Level Order Traversal
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- Binary Tree Zigzag Level Order Traversal
- Binary Tree Zigzag Level Order Traversal
- [Leetcode]Binary Tree Zigzag Level Order Traversal
- [leetcode]Binary Tree Zigzag Level Order Traversal
- Leetcode: Binary Tree Zigzag Level Order Traversal
- MongoDB学习---查询操作
- 各种分辨率
- SendMessage MSDN理解
- android 的view类的setVisibility();值的意思
- jQuery插件开发全解析
- Binary Tree Zigzag Level Order Traversal & Partition List & Letter Combinations of a Phone Number
- 设计学习的轨迹
- Android中Context
- ACM-C++复数运算符重载(+与<<)
- Cortex-A15 Processor 简介
- MongoDB无法启动的解决方法
- iframe 背景设透明 国内某浏览器 为白色解决办法
- 64位win7环境eclipse集成svn后出现Failed to load JavaHL Library的解决办法
- Android修改默认时区与语言