BFS Binary Tree Level Order Traversal
来源:互联网 发布:网吧指纹软件公安局 编辑:程序博客网 时间:2024/06/03 23:14
思路:
BFS。
两个队列,一个保存当前层的所有节点,一个保存下一层的所有节点。
std::swap()函数:
C++98: <algorithm>, C++11: <utility>
在C++ 98中的定义:
// defined in <algorithm> before C++11
template <class T> void swap (T& a, T& b);
在C++ 11中的定义:
template <class T> void swap (T& a, T& b) noexcept (is_nothrow_move_constructible<T>::value && is_nothrow_move_assignable<T>::value);
template <class T, size_t N> void swap(T (&a)[N], T (&b)[N]) noexcept (noexcept(swap(*a,*b)));
std::queue:FIFO队列容器
Member functions
- (constructor)
- Construct queue (public member function )
- empty
- Test whether container is empty (public member function )
- size
- Return size (public member function )
- front
- Access next element (public member function )
- back
- Access last element (public member function )
- push
- Insert element (public member function )
- emplace
- Construct and insert element (public member function )
- pop
- Remove next element (public member function )
- swap
- Swap contents (public member function )
/** * 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: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<int>> res; if(root == NULL) return res; queue<TreeNode*> current, nextLevel; current.push(root); vector<int> level; while(!current.empty()) { while(!current.empty()) { TreeNode *node = current.front(); current.pop(); level.push_back(node->val); if(node->left != NULL) nextLevel.push(node->left); if(node->right != NULL) nextLevel.push(node->right); } res.push_back(level); level.clear(); swap(current, nextLevel); } return res; }};
0 0
- BFS Binary Tree Level Order Traversal
- BFS Binary Tree Level Order Traversal II
- 102 - Binary Tree Level Order Traversal(BFS)
- BFS Binary Tree Level Order Traversal
- [BFS]102. Binary Tree Level Order Traversal
- 102. Binary Tree Level Order Traversal(BFS)
- LeetCode :: Binary Tree Zigzag Level Order Traversal [tree, BFS]
- Binary Tree Zigzag Level Order Traversal,bfs,层序遍历
- 102:Binary Tree Level Order Traversal【树】【BFS】
- 107:Binary Tree Level Order Traversal II【树】【BFS】
- 103:Binary Tree Zigzag Level Order Traversal【树】【BFS】【栈】
- Posts Tagged 【bfs】Binary Tree Level Order Traversal I && II
- LeetCode 102. Binary Tree Level Order Traversal(bfs)
- leetcode-107. Binary Tree Level Order Traversal II-BFS
- [BFS]107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II(BFS)
- (M)BFS:103. Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal(BFS)
- 那些C++牛人的博客
- 网络学习第二章(中继器)
- abap程序实现Enhencement增强
- bootstrap修改默认字体,更换为微软雅黑或其他字体的方法
- yum安装mysql
- BFS Binary Tree Level Order Traversal
- hadoop学习笔记(一)——hadoop安装及测试
- 二叉排序树
- 浅谈MySQL索引背后的数据结构及算法
- 网站排名要精准,蛇吞象必然会付出“代价”
- java--18位身份证号最后一位(检验码)是怎么算出来的?
- .net企业实战视频就业培训
- mysql数据库的优化
- PHP图片压缩缩略图