news 2026/6/9 16:59:19

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

作者头像

张小明

前端开发工程师

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/6/10 11:27:29

终极参考文献提取神器: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/6/10 11:46:08

从扫描件到结构化数据|PaddleOCR-VL-WEB助力高精度文档智能解析

从扫描件到结构化数据&#xff5c;PaddleOCR-VL-WEB助力高精度文档智能解析 在金融、法律、医疗等专业领域&#xff0c;大量历史档案和业务文件仍以扫描件或非结构化PDF形式存在。这些文档往往包含复杂的版式、多语言混排、手写内容以及嵌套表格与公式&#xff0c;传统OCR工具…

作者头像 李华
网站建设 2026/6/10 11:30:11

AI印象派艺术工坊文化传承案例:老照片艺术修复处理流程

AI印象派艺术工坊文化传承案例&#xff1a;老照片艺术修复处理流程 1. 引言 1.1 技术背景与文化价值 随着数字技术的发展&#xff0c;文化遗产的数字化保护逐渐成为重要课题。老照片作为家庭记忆与社会历史的重要载体&#xff0c;往往因年代久远出现褪色、划痕、模糊等问题。…

作者头像 李华
网站建设 2026/5/11 3:26:00

从零开始学AI写作:Qwen3-4B-Instruct入门到精通

从零开始学AI写作&#xff1a;Qwen3-4B-Instruct入门到精通 1. 项目背景与核心价值 在生成式AI快速发展的今天&#xff0c;大语言模型正逐步从“能说会道”向“深度思考”演进。对于内容创作者、开发者和独立研究者而言&#xff0c;一个兼具高智商推理能力与本地可部署性的模…

作者头像 李华
网站建设 2026/6/9 19:53:29

终极指南:掌握Cura 3D打印切片的核心技巧

终极指南&#xff1a;掌握Cura 3D打印切片的核心技巧 【免费下载链接】Cura 3D printer / slicing GUI built on top of the Uranium framework 项目地址: https://gitcode.com/gh_mirrors/cu/Cura 当你精心设计的3D模型在打印时出现层间分离、支撑结构难以去除&#xf…

作者头像 李华
网站建设 2026/6/9 3:27:07

Android 3D模型查看器终极指南:免费移动端3D渲染解决方案

Android 3D模型查看器终极指南&#xff1a;免费移动端3D渲染解决方案 【免费下载链接】ModelViewer3D 3D model viewer app (STL, OBJ, PLY) for Android. 项目地址: https://gitcode.com/gh_mirrors/mo/ModelViewer3D 你是否曾经想过在手机上就能轻松查看3D模型&#x…

作者头像 李华