博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
199. Binary Tree Right Side View(Tree)
阅读量:4180 次
发布时间:2019-05-26

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

链接:

题目:返回每一层的最右节点。

思路:层次遍历,每次统计当前层的节点个数(cur_low)和下一层的节点个数(next_low),当cur_low ==1 时,找到一个最右节点,然后更新cur_low(cur_low = next_low)。

代码:

class Solution {public:    vector
rightSideView(TreeNode* root) { vector
ret; queue
Q; int cur_low = 1; int next_low = 0; Q.push(root); while(!Q.empty()&&Q.front()){ TreeNode *t = Q.front(); if(cur_low == 1) ret.push_back(t->val); //找到一个最右节点 if(t->left) Q.push(t->left),next_low++; if(t->right) Q.push(t->right),next_low++; cur_low--; if(cur_low == 0) { //换到下一层 cur_low = next_low; next_low = 0; } Q.pop(); } return ret; }};

转载地址:http://rirai.baihongyu.com/

你可能感兴趣的文章
【Java并发编程实战】——并发编程基础
查看>>
【Java并发编程实战】——Java内存模型与线程
查看>>
Java复制文件的4种方式
查看>>
mysql的JDBC连接工具类
查看>>
利用多线程(用到原子类AtomicInteger)往数据库批量插入大量数据
查看>>
多个线程操作数组
查看>>
定长线程池的应用
查看>>
ArrayBlockingQueue的简单使用
查看>>
Git 常用命令总结(一)
查看>>
Git 常用命令总结(二)
查看>>
JAVA 并发——synchronized的分析
查看>>
Echarts——使用 dataset 管理数据
查看>>
DES 加解密工具类
查看>>
SpringBoot多模块项目实践(Multi-Module)
查看>>
第一篇: 服务的注册与发现Eureka(Greenwich版)
查看>>
第二篇: 服务消费者(rest+ribbon)(Greenwich版本)
查看>>
第三篇: 服务消费者(Feign)(Greenwich版本)
查看>>
获取客户的真实IP地址
查看>>
第四篇: 熔断器(Ribbon+Feign)(Greenwich版本)
查看>>
Linux的常用命令(一)
查看>>