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

LeetCode--已知前序遍历和中序遍历构造二叉树_已知一棵树的前序遍历和中序遍历

题干:

根据一棵树的前序遍历与中序遍历构造二叉树。

注意:
你可以假设树中没有重复的元素。

例如,给出

前序遍历 preorder = [3,9,20,15,7]
中序遍历 inorder = [9,3,15,20,7]

返回如下的二叉树:

    3/ \9  20/  \15   7

解答:

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {public TreeNode buildTree(int[] preorder, int[] inorder) {if(preorder.length == 0){return null ;}if(preorder.length == 1){return new TreeNode(preorder[0]);}TreeNode root = new TreeNode(preorder[0]);int rootNum = 0 ;for(int i =0 ; i < inorder.length; i ++){if(inorder[i] == preorder[0]){rootNum = i;break;}}int[] inLeft = Arrays.copyOfRange(inorder,0,rootNum);int[] preLeft = Arrays.copyOfRange(preorder,1,1+inLeft.length);int[] inRight =  Arrays.copyOfRange(inorder,rootNum+1,inorder.length);int[] preRight = Arrays.copyOfRange(preorder,inorder.length-inRight.length,inorder.length);root.left = buildTree(preLeft,inLeft);root.right = buildTree(preRight,inRight);return root;}
}

 

 

同名原创公众号:程序大视界

 

http://www.jsqmd.com/news/781804/

相关文章:

  • ComfyUI节点冲突深度解析:5种系统化解决方案与最佳实践
  • OpenCode与Cursor Pro深度整合:无限制提示词与完整工具调用实战
  • Claude Stacks:AI开发环境一键打包与共享的CLI工具实战
  • Rune语言社区贡献指南:如何参与开源项目开发的完整教程
  • 第二篇:Redis的过期删除与内存淘汰——数据过期了怎么删?内存满了怎么办?
  • Blueboat性能优化秘籍:让你的JavaScript应用运行速度提升300%
  • 树莓派Zero W打造开源电子宠物:软硬结合与低功耗设计实战
  • 视频转文字的方法有哪些?2026年视频转文字工具推荐完全对比
  • Vale编译器构建系统详解:跨平台编译与依赖管理终极指南
  • LitElement自定义渲染根终极指南:解锁Shadow DOM的高级配置
  • Claude全面入侵Office,微软慌了!
  • 5分钟快速上手:Windows DLL注入器Xenos终极使用指南
  • 开源AI网关实战:LLM API治理、成本控制与安全合规指南
  • 如何用AKShare快速搞定金融数据获取?终极实战指南
  • Vrite高级功能揭秘:实时评论、版本历史和冲突解决
  • 终极navi指南:10个变量依赖和扩展功能的实战技巧
  • 碧蓝航线自动化革命:如何用AzurLaneAutoScript实现7x24小时全托管游戏体验
  • XUnity自动翻译器:让外语游戏秒变中文版的终极解决方案
  • 原神FPS解锁器:终极免费工具轻松突破60帧限制,享受丝滑游戏体验
  • FP8量化在生成式推荐系统OneRec-V2中的优化实践
  • Sanic消息格式终极指南:如何自定义协议与优化数据交换性能
  • FeignClient注解及参数问题---SpringCloud微服务
  • 5分钟打造个性化Windows桌面:TranslucentTB透明任务栏终极指南
  • 基于RAG技术构建私有知识库智能问答系统:从原理到实践
  • Docker-Mailserver终极指南:如何配置DKIM和DMARC实现专业邮件身份验证
  • Chatbox:桌面端AI助手聚合客户端,统一管理多模型与本地部署
  • 如何为ChatGPT-Micro-Cap-Experiment贡献代码:从零开始的AI金融项目贡献指南
  • Gallop Arena:LLM竞技场评估平台,自动化模型对比与Elo排名实战
  • 电脑崩了,密码全丢!我用一块 PE 盘,从“空白桌面”里抢回上百个网站登录凭证
  • DownKyi三分钟快速上手:B站视频下载难题一站式解决方案