博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 102二叉树的层序遍历
阅读量:5963 次
发布时间:2019-06-19

本文共 2422 字,大约阅读时间需要 8 分钟。

 5月20更新:

使用借助队列实现bfs,定义len记录队列的尺寸直接进行遍历层序

/** * 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
> levelOrder(TreeNode* root) { vector
> res; if(root==NULL) return res; queue
q; q.push(root); while(!q.empty()){ vector
level; int len=q.size(); for(int i=0;i
val); if(p->left!=NULL) q.push(p->left); if(p->right!=NULL) q.push(p->right); } res.push_back(level); } return res; }};

 



 

更新之前:使用广度优先搜索和获得队列大小:

/** * 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
> levelOrder(TreeNode* root) { if(root==NULL) return {}; queue
q; TreeNode* front; q.push(root); vector
> res; while(!q.empty()){ vector
onelevel; for(int i=q.size();i>0;i--){ front=q.front(); q.pop(); if(front->left) q.push(front->left); if(front->right) q.push(front->right); onelevel.push_back(front->val); } res.push_back(onelevel); } return res; }};

使用两个队列:

/** * 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
> levelOrder(TreeNode* root) { vector
> res; queue
q1; queue
q2; if(root==NULL) return {}; q1.push(root); while(!q1.empty()){ vector
level; while(!q1.empty()){ TreeNode* cur=q1.front(); q1.pop(); level.push_back(cur->val); if(cur->left) q2.push(cur->left); if(cur->right) q2.push(cur->right); } while(!q2.empty()){ q1.push(q2.front()); q2.pop(); } res.push_back(level); } return res; }};

 

转载于:https://www.cnblogs.com/joelwang/p/10686530.html

你可能感兴趣的文章
StringBuffer 和 StringBiulder的区别
查看>>
自建网页服务器基础
查看>>
浅谈oracle 12C的新特性-CDB和PDB
查看>>
mysql 加密连接SSL
查看>>
mariadb 10.1.xx 自带数据库审计插件,直接上操作过程
查看>>
MySql的安装
查看>>
同时开左右两个SAPGUI编辑器显示同一段ABAP代码
查看>>
无法在Chrome浏览器中查看SCCM SSRS报告
查看>>
mongoDB副本集的搭建
查看>>
ORA-01045: user ICCS lacks CREATE SESSION privilege; logon denied
查看>>
Android官方开发文档Training系列课程中文版:手势处理之监测通用手势
查看>>
python 网络编程
查看>>
vCenter的安装与部署
查看>>
线程间互斥:mutex
查看>>
我眼中的绩效考核“业务提成”
查看>>
明略数据吴明辉:AI商业化的核心是让用户合理接受机器的错误
查看>>
自定义View实例(二)----一步一步教你实现QQ健康界面
查看>>
Frame-relay 综合实验-4
查看>>
这个算法告诉你点链接会泄露多少秘密,帮你判断该不该点
查看>>
Gradle2.0用户指南翻译——第五章. 疑难解答
查看>>