C++详解Leetcode:102. Binary Tree Level Order Traversal
来源:互联网 发布:漫画封面设计软件 编辑:程序博客网 时间:2024/06/08 15:47
原题
思想
这一题主要考查二叉树的层次遍历,最常用的方法就是用队列去做,但是需要将二叉树的节点值存到一个二维数组中去,然后返回,这需要在队列存储时候做一些操作,通过NULL来标记二叉树的层次
代码和详解
struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right;};class Solution {public: vector<vector<int>> levelOrder(TreeNode* root) { //分配一个二维向量 vector<vector<int>> result; //用队列来存储二叉树结点值 queue<TreeNode *> q; //如果根节点为空,则返回 if (!root) { return result; } //将根节点先放入队列中 q.push(root); //再将NULL放入队列中,NULL是为了标记那一层的作用 q.push(NULL); //cur是为了存储每一层的节点值 vector<int> cur; //循环进行二叉树层次遍历,直到队列为空 while (!q.empty()) { //去除队列的第一个值 TreeNode* t = q.front(); //出队列 q.pop(); //如果t==NULL则证明当前层的遍历已经结束,需要将这一层存在cur中的值放到result中 if (t == NULL) { result.push_back(cur); //将cur大小重新置为0 cur.resize(0); //如果队列不为空,证明还没有遍历结束,继续讲NULL入队列作为标记 if (q.size() > 0) { q.push(NULL); } } else { //将当前的节点值存到cur中 cur.push_back(t->val); //如果左孩子不为空,则入队列 if (t->left) { q.push(t->left); } //如果右孩子不为空,则入队列 if (t->right) { q.push(t->right); } } } //返回结果 return result; }};
阅读全文
0 0
- C++详解Leetcode:102. Binary Tree Level Order Traversal
- 【C++】【LeetCode】102. Binary Tree Level Order Traversal
- LeetCode 102. Binary Tree Level Order Traversal
- [LeetCode]102.Binary Tree Level Order Traversal
- [Leetcode] 102. Binary Tree Level Order Traversal
- LeetCode --- 102. Binary Tree Level Order Traversal
- [leetcode] 102.Binary Tree Level Order Traversal
- 【leetcode】102. Binary Tree Level Order Traversal
- Leetcode 102. Binary Tree Level Order Traversal
- 102. Binary Tree Level Order Traversal LeetCode
- [leetcode] 102. Binary Tree Level Order Traversal
- Leetcode 102. Binary Tree Level Order Traversal
- LeetCode *** 102. Binary Tree Level Order Traversal
- LeetCode 102. Binary Tree Level Order Traversal
- LeetCode 102. Binary Tree Level Order Traversal
- leetcode-102. Binary Tree Level Order Traversal
- 【leetcode】102. Binary Tree Level Order Traversal
- LeetCode 102. Binary Tree Level Order Traversal
- lcd设备图像显示
- 死锁,Java简单示例
- 自增运算符++和取内容运算符之间的关系
- bmp图片解码
- 如何使用gitHub进行合作开发
- C++详解Leetcode:102. Binary Tree Level Order Traversal
- String的转换功能(重点)
- jpeg源码库移植到linux系统
- JAXBContext 解析尾随节中不允许有内容异常
- 菱形继承
- PX4flow中的汇编代码
- 进程与线程
- RequestMethod -POST 、GET 、PUT 、DELETE
- Vue框架脚手架搭建