二叉树层次遍历,记录层次/每层节点数/每层最左边最右边的节点
发布日期:2022-02-27 02:38:07
浏览次数:41
分类:技术文章
本文共 935 字,大约阅读时间需要 3 分钟。
题目来源:leetcode
层次遍历用队列,但是如何记录层次是一个需要思考的地方。一种方法是提供两个变量记录本层节点数和下层节点数,还有一种很巧妙的方法,记录队列中元素的数量,就是当前层次节点数。
题解:
这道题思路是使用层次遍历,每层最右边一个节点就是右视图的一部分。如果求左视图,就取每层最左边的节点。class Solution { public: vector rightSideView(TreeNode* root) { if(root==nullptr) return vector { }; vector ans;//记录答案 queueq;//队列用于层次遍历 q.push(root); while(!q.empty()) { int size = q.size();//当前层节点的个数! ans.push_back(q.front()->val);//看下面的进队顺序,队列最前面的就是本层最右的元素 while(size--)//遍历当前层的元素! { TreeNode* temp=q.front(); q.pop(); if(temp->right) q.push(temp->right);//进队语句交换,可以实现 左视图 if(temp->left) q.push(temp->left); } } return ans; } };
参考:@淹死在水里的鱼 https://leetcode-cn.com/problems/binary-tree-right-side-view/comments/
转载地址:https://blog.csdn.net/weixin_43401437/article/details/114895416 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月02日 15时33分41秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【Unity3D】Unity3D 场景的淡入淡出效果实现
2021-06-30
【Unity3D】Unity3D 手势控制模型放大缩小
2021-06-30
【Unity3D】Unity3D 核心类型一览
2021-06-30
【Unity3D】Unity3D UGUI原理分析
2021-06-30
【Unity3D】Unity3D 资源管理整理
2021-06-30
【Unity3D】Unity3D 几个让你相见恨晚的小技巧
2021-06-30
【云服务器】如何搭建自己的百度云服务器?
2021-06-30
【Unity3D】 Photon多人游戏开发教程
2021-06-30
【Unity3D】项目防破解,安全守护,保护项目经验分享
2021-06-30
Python 基础(二十一):argparse 模块
2021-06-30
Python 基础(二十二):正则表达式
2021-06-30
Python 进阶(一):多线程
2021-06-30
Python 进阶(二):多进程
2021-06-30
Python 进阶(三):邮件的发送与收取
2021-06-30
Python 进阶(四):数据库操作之 MySQL
2021-06-30
Python 进阶(五):数据库操作之 SQLite
2021-06-30
Python 进阶(六): Excel 基本操作
2021-06-30
Python 进阶(七): Word 基本操作
2021-06-30
Python 进阶(八):XML 基本操作
2021-06-30