当前位置: 首页 > news >正文

力扣面试150题--二叉树的右视图

Day 53

题目描述

在这里插入图片描述

思路

采取层序遍历,利用一个high的队列来保存每个节点的高度,highb和y记录上一个节点的高度和节点,在队列中,如果队列中顶部元素的高度大于上一个节点的高度,说明上一个节点就是上一层中最右边的元素,加入数组即可,同时最后需要处理最后一个元素,因为最后一个元素没有能比较的了,需要手动加入数组。

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public List<Integer> rightSideView(TreeNode root) {List<Integer>list=new ArrayList<Integer>();if(root==null){return list;}Queue<TreeNode> stack=new LinkedList<>();Queue<Integer> high=new LinkedList<>();stack.offer(root);high.offer(0);TreeNode x=root;TreeNode y=root;int highb=0;while(!stack.isEmpty()){if(high.peek()>highb){list.add(y.val);}y=stack.peek();highb=high.peek();x=stack.poll();high.poll();if(x.left!=null){stack.offer(x.left);high.offer(highb+1);}if(x.right!=null){stack.offer(x.right);high.offer(highb+1);}}list.add(x.val);return list;}
}

相关文章:

  • 高速连接器设计的真相
  • 由enctype-引出post与get的关系,最后深究至请求/响应报文
  • windows系统下通过visual studio使用clang tooling
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(二十八) -> 开发云对象
  • 变更数据捕获(CDC)与流处理引擎实现医疗数据实时同步(下)
  • 【Python】3.函数与列表
  • 2025.05.28-华为暑期实习第二题-200分
  • Python 科学计算有哪些提高运算速度的技巧
  • 机器人--里程计
  • Java—多线程
  • DM达梦数据库开启SQL日志记录功能
  • DeepSeek 工作应用深度指南
  • xcode卡死问题,无论打开什么程序xcode总是在转菊花,重启电脑,卸载重装都不行
  • 【人工智能】DeepSeek的AI狂想曲:从训练到应用的交响乐
  • Lesson 9 防火墙 iptables 和 firewalld
  • 金山云Q1营收19.7亿元 AI持续释放业务增长新动能
  • 暗通道先验去雾算法实现
  • NW845NW850美光闪存颗粒NW883NW889
  • Linux云计算训练营笔记day18(Python)
  • 18度的井水
  • 网站开发学习步骤/关键词查询优化
  • 百度百科分类方法/seo工具网站
  • 南宁网站建设推广优化/厦门百度开户
  • 郑州网站开发培训价格/工具站seo
  • 网站建设培训费用/营销咨询
  • 怎么做投票网站/抖音营销