【leetcode】Binary Tree Level Order Traversal
来源:互联网 发布:怎么看台湾网站知乎 编辑:程序博客网 时间:2024/06/05 01:21
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
For example:
Given binary tree {3,9,20,#,#,15,7}
,
3 / \ 9 20 / \ 15 7
return its level order traversal as:
[ [3], [9,20], [15,7]]
Accept: 11ms
#include <math.h>struct Pair { int i; TreeNode *node;};/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: Solution() { _result = new vector<vector<int> >; } ~Solution() { delete _result; } vector<vector<int> > levelOrder(TreeNode *root) { _result->clear(); if (root == NULL) { return *_result; } Pair *p = new Pair; p->i = 0; p->node = root; _que.push(p); outputTree(*_result); return *_result; }protected: void outputTree(vector<vector<int> > &result) { if (_que.empty()) { return; } Pair *p = _que.front(); _que.pop(); // output: int level = p->i; if (result.size() <= level) { result.resize(level + 1); } result[level].push_back(p->node->val); // handle children: if (p->node->left) { Pair *left = new Pair; left->i = p->i + 1; left->node = p->node->left; _que.push(left); } if (p->node->right) { Pair *right = new Pair; right->i = p->i + 1; right->node = p->node->right; _que.push(right); } delete p; outputTree(result); }private: queue<Pair*> _que; vector<vector<int> > *_result;};
0 0
- LeetCode[Tree]: Binary Tree Level Order Traversal
- *(leetcode) Binary Tree Level Order Traversal (tree)
- [leetcode][tree] Binary Tree Level Order Traversal
- LeetCode: Binary Tree Level Order Traversal
- LeetCode: Binary Tree Zigzag Level Order Traversal
- LeetCode: Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal
- [LeetCode]Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Level Order Traversal
- LeetCode Binary Tree Level Order Traversal II
- LeetCode Binary Tree Zigzag Level Order Traversal
- [Leetcode] Binary Tree Level Order Traversal
- [Leetcode] Binary Tree Level Order Traversal II
- [Leetcode] Binary Tree Zigzag Level Order Traversal
- Leetcode: Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Level Order Traversal
- LeetCode Binary Tree Level Order Traversal II
- 最长上升子序列
- linux 命令笔记
- hadoop倒排索引
- 全站查询和分页显示——在线留言板2
- cocos2d-x怎么新建项目
- 【leetcode】Binary Tree Level Order Traversal
- 【转】世界最著名大学教育向我们开放了!!!!!(非常珍贵的资源!!)
- 合A*算法
- Qt学习之路之解决unable to find a qt build,to solve this problem specify a qt build
- 黑马程序员——[C语言]基本运算符
- 项目不报错,但是数据添加不到数据库中
- LeetCode | Sum Root to Leaf Numbers
- 压缩感知中的数学知识——凸优化
- 速卖通装修怎么添加多国语言切换