当前位置: 首页> 文旅> 文化 > 哈尔滨建筑网_南宁seo诊断_微信朋友圈广告投放代理_合肥百度推广优化排名

哈尔滨建筑网_南宁seo诊断_微信朋友圈广告投放代理_合肥百度推广优化排名

时间:2025/7/9 21:21:35来源:https://blog.csdn.net/m0_74897394/article/details/142394659 浏览次数:0次
哈尔滨建筑网_南宁seo诊断_微信朋友圈广告投放代理_合肥百度推广优化排名

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。

示例 1:

输入:root = [3,9,20,null,null,15,7]
输出:[[3],[9,20],[15,7]]

一般层序遍历,我们用一个队列存储根节点同时寻找其左右子树并将其放到队列中,循环条件为队列不为空,这个题和层次遍历的区别是该题打印时也要按着数原本的结构打印。

在原来层次遍历的基础上,我们增加一个循环,在一个循环里,这些节点都是在同一层的,所以当循环结束时,这些点被放到一个容器中,这就是一层的数据。通过不断循环,我们就可以将每一层的数据按结构输出了。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<vector<int>>res;vector<vector<int>> levelOrder(TreeNode* root) {if(root==nullptr)return res;queue<TreeNode *>s;s.push(root);while(!s.empty()){vector<int>path;int len=s.size();for(int i=0;i<len;i++){TreeNode * p=s.front();path.push_back(p->val);s.pop();if(p->left)s.push(p->left);if(p->right)s.push(p->right);}res.push_back(path);}return res;}
};

PS:记得之前在学习数据结构时也遇到了这个题,当时的思路是创建了一个带有#的二叉树,并以此为边界遍历搭建层次结构,很繁琐的方法,也贴出来做个对比。

二叉树的层次输出_问题 d: 完全二叉树的结构化层次输出-CSDN博客

关键字:哈尔滨建筑网_南宁seo诊断_微信朋友圈广告投放代理_合肥百度推广优化排名

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: