news 2026/9/3 8:08:40

【新视角】输出二叉树的右视图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【新视角】输出二叉树的右视图

求解代码

// 存储最终结果:key = 二叉树的层级(根节点在第0层),value = 该层级【最右侧】的节点值privateHashMap<Integer,Integer>ans=newHashMap<>();// 预处理哈希表:key=中序数组的节点值,value=该值在中序数组的下标privateHashMap<Integer,Integer>map=newHashMap<>();// 前序数组的全局遍历指针:按「根→左→右」的前序规则,依次取当前递归层的根节点,取完自增privateintlevel=0;publicvoidbuildTree(int[]preOrder,int[]inOrder,intleft,intright,inti){if(left>right){return;}// 按前序顺序取根节点,通过哈希表拿到根节点在中序数组的下标indexintindex=map.get(preOrder[level++]);// 递归构建左子树,中序区间[left, index-1],子节点层级 = 父层级+1buildTree(preOrder,inOrder,left,index-1,i+1);// 递归构建右子树,中序区间[index+1, right],子节点层级 = 父层级+1buildTree(preOrder,inOrder,index+1,right,i+1);// 存入当前节点到对应层级,后存的节点会覆盖先存的 → 最终保留该层最右侧节点ans.put(i,inOrder[index]);}publicint[]solve(int[]preOrder,int[]inOrder){for(inti=0;i<inOrder.length;i++){map.put(inOrder[i],i);}buildTree(preOrder,inOrder,0,preOrder.length-1,0);int[]temp=newint[ans.size()];for(inti=0;i<ans.size();i++){temp[i]=ans.get(i);}returntemp;}

小贴士

解释一下这行代码ans.put(i, inOrder[index]);可以拿到「每层最右侧」的节点:

因为在递归时,是先递归构建左子树,再递归构建右子树,这个顺序意味着:在同一层级中,「左侧节点」会被先处理,「右侧节点」被后处理。

对于哈希表来说,相同key的put操作,会覆盖原值,在同一层级中,不管有多少个节点,最终只会存最后一次 put 的那个值

所以,同一层级的右侧节点一定是最后一个被put的,所以最终ans.get(i)拿到的,一定是「第 i 层最右侧的节点值」。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 5:13:46

SteamCMD终极指南:5分钟学会搭建游戏服务器

SteamCMD终极指南&#xff1a;5分钟学会搭建游戏服务器 【免费下载链接】SteamCMD-Commands-List SteamCMD Commands List 项目地址: https://gitcode.com/gh_mirrors/st/SteamCMD-Commands-List 还在为游戏服务器搭建烦恼吗&#xff1f;想和朋友一起畅玩《CS:GO》、《方…

作者头像 李华
网站建设 2026/9/3 1:00:38

Fast-Font视觉加速字体:如何让你的阅读速度提升50%?

Fast-Font视觉加速字体&#xff1a;如何让你的阅读速度提升50%&#xff1f; 【免费下载链接】Fast-Font This font provides faster reading through facilitating the reading process by guiding the eyes through text with artificial fixation points. 项目地址: https:…

作者头像 李华
网站建设 2026/9/2 23:11:54

Windows微信批量消息发送工具完整解析

Windows微信批量消息发送工具完整解析 【免费下载链接】WeChat-mass-msg 微信自动发送信息&#xff0c;微信群发消息&#xff0c;Windows系统微信客户端&#xff08;PC端 项目地址: https://gitcode.com/gh_mirrors/we/WeChat-mass-msg 在数字化沟通日益频繁的今天&…

作者头像 李华
网站建设 2026/9/2 23:07:52

小白必看:Qwen-Image-2512-ComfyUI快速搭建图文编辑工作流

小白必看&#xff1a;Qwen-Image-2512-ComfyUI快速搭建图文编辑工作流 1. 引言&#xff1a;为什么选择 Qwen-Image-2512-ComfyUI&#xff1f; 随着多模态生成技术的快速发展&#xff0c;图像编辑正从传统修图工具迈向“语义级”智能操作。阿里巴巴通义千问团队推出的 Qwen-Im…

作者头像 李华
网站建设 2026/9/2 22:14:11

如何快速恢复丢失的文献引用:Ref-Extractor完整使用指南

如何快速恢复丢失的文献引用&#xff1a;Ref-Extractor完整使用指南 【免费下载链接】ref-extractor Reference Extractor - Extract Zotero/Mendeley references from Microsoft Word files 项目地址: https://gitcode.com/gh_mirrors/re/ref-extractor 作为一名学术研…

作者头像 李华
网站建设 2026/9/3 2:55:15

如何高效部署Qwen3-Embedding-4B?镜像一键启动教程

如何高效部署Qwen3-Embedding-4B&#xff1f;镜像一键启动教程 1. 背景与需求分析 随着大模型在检索、分类、聚类等任务中的广泛应用&#xff0c;高质量的文本嵌入服务已成为构建智能系统的核心组件之一。Qwen3-Embedding-4B 作为通义千问系列最新推出的中等规模嵌入模型&…

作者头像 李华