层级遍历二叉树
来源:互联网 发布:淘宝店铺托管费用 编辑:程序博客网 时间:2024/06/05 03:03
第一种方法就是用队列实现
class Solution {public: void levelorder(TreeNode* root){ if(!root) return; queue<TreeNode*> q; q.push(root); while(!q.empty()){ TreeNode* temp=q.front(); cout<<temp->val<<" "; q.pop(); if(temp->left) q.push(temp->left); if(temp->right) q.push(temp->right); } }};
根节点入列——转移给临时指针,输出后删除——temp(root)左右节点入列——不断循环,先进先出,先左后右
第二种方法根据level值每层输出,但是 重复工作较多,并不推荐
class Solution {public: int print_level(TreeNode* root,int level){ if(!root||level<0) return 0; if(level==0){ cout<<root->val<<" "; return 1; } return print_level(root->left,level-1)+print_level(root->right,level-1); } void levelorder(TreeNode* root){ for(int i=0;;i++){ if(!print_level(root,i)) break; } }};
懒得画图了,附上一张草稿纸好了QVQ
0 0
- 层级遍历二叉树
- 二叉树-层级遍历
- 二叉树的层级遍历
- 二叉树的层级遍历
- 层级二叉树实现与遍历
- 二叉树的层级遍历 java
- Binary Tree Level Order Traversal, 二叉树层级遍历
- <LeetCode> 题69~71: 二叉树的层级遍历
- 二叉树层级遍历并按行打印
- 二叉树层级遍历之每层最后一个值
- 树的层级遍历
- 树结构的层级遍历
- Java实现二叉树的先序、中序、后序、层级遍历
- LeetCode 102 Binary Tree Level Order Traversal(二叉树的层级顺序遍历)(*)
- Java实现二叉树的先序、中序、后序、层级遍历
- 二叉树的遍历算法(先序中序后序遍历的递归算法与非递归算法、层级遍历的递归与非递归算法)
- LeetCode 107 Binary Tree Level Order Traversal II(二叉树的层级顺序遍历2)(*)
- 二叉树遍历、分层遍历
- 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
- opencv中的SVM图像分类(一)
- Android Studio 解决Error occurred during initalization of VM
- 22. Generate Parentheses--递归法
- PAT A1003
- 层级遍历二叉树
- HTTP请求错误400、401、402、403、404、405、406、407、412、414、500、501、502解析
- 2017年伊始,你需要尝试的25个Android第三方库
- Spring与Quartz实现动态更新定时任务
- mariadb主从复制及互为主从配置过程
- PFN最新的目标检测算法
- InfoGAN介绍
- 设定网页最小最大宽度和高度(兼容IE6)
- opencv中的SVM图像分类(二)