news 2026/9/15 10:05:35

【前序+中序】重建二叉树

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【前序+中序】重建二叉树


求解代码

publicTreeNodereConstructBinaryTree(int[]preOrder,int[]vinOrder){intpre_len=preOrder.length;intvin_len=vinOrder.length;if(pre_len==0||vin_len==0){returnnull;}TreeNoderoot=newTreeNode(preOrder[0]);for(inti=0;i<vinOrder.length;i++){if(preOrder[0]==vinOrder[i]){// 左子树:前序从[1, i+1) 中序从[0, i)root.left=reConstructBinaryTree(Arrays.copyOfRange(preOrder,1,i+1),Arrays.copyOfRange(vinOrder,0,i));// 右子树:前序从[i+1, pre_len) 中序从[i+1, vin_len)root.right=reConstructBinaryTree(Arrays.copyOfRange(preOrder,i+1,preOrder.length),Arrays.copyOfRange(vinOrder,i+1,vinOrder.length));break;}}returnroot;}

小贴士

Arrays.copyOfRange(原数组, from, to)→ 复制数组的[from, to)区间,返回新数组;

中序遍历分割数组比较好理解:

中序遍历过程中左子树是从[0,i),右子树是从[i+1,vin_len)

前序遍历分割数组可能会有点绕,这里解释一下:

中序遍历到位置i时,可以得知左子树所在的区间是[0,i-1],长度就是i

那么回到前序遍历中来,因为同一棵树它的左子树的长度在前序遍历和中序遍历的过程中是相同的,也就是长度是i,那么又因为前序遍历的0位置是根节点,则前序遍历的左子树所在的区间就是[1,i]

由于Arrays.copyOfRange方法是左闭右开区间,所以前序遍历过程中,左子树是从[1,i+1),右子树就是从[i+1,pre_len)

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

用两个栈实现队列

求解代码 Stack<Integer> stack1 new Stack<Integer>();Stack<Integer> stack2 new Stack<Integer>();public void push(int node) {stack1.push(node);}public int pop() {if(stack2.isEmpty()){while (!stack1.isEmpty()) {stack2.push(stack1.po…

作者头像 李华
网站建设 2026/9/15 10:05:35

ComfyUI硬件性能优化全攻略:如何在有限资源下获得最佳表现

ComfyUI硬件性能优化全攻略&#xff1a;如何在有限资源下获得最佳表现 【免费下载链接】ComfyUI 最强大且模块化的具有图形/节点界面的稳定扩散GUI。 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI 作为一名AI图像生成爱好者&#xff0c;你是否曾遇到过这样…

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

EPOCH完全指南:从零掌握等离子体粒子模拟技术

EPOCH完全指南&#xff1a;从零掌握等离子体粒子模拟技术 【免费下载链接】epoch Particle-in-cell code for plasma physics simulations 项目地址: https://gitcode.com/gh_mirrors/epoc/epoch EPOCH是一款强大的开源粒子-in-cell&#xff08;PIC&#xff09;代码&…

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

5分钟部署Youtu-2B:腾讯轻量级LLM智能对话服务一键启动

5分钟部署Youtu-2B&#xff1a;腾讯轻量级LLM智能对话服务一键启动 1. 引言&#xff1a;为什么需要轻量级大模型&#xff1f; 随着大语言模型&#xff08;LLM&#xff09;在自然语言处理领域的广泛应用&#xff0c;企业与开发者对模型的推理效率、部署成本和响应速度提出了更…

作者头像 李华
网站建设 2026/9/9 11:38:24

TwitchDropsMiner终极指南:免费快速获取游戏掉落奖励

TwitchDropsMiner终极指南&#xff1a;免费快速获取游戏掉落奖励 【免费下载链接】TwitchDropsMiner An app that allows you to AFK mine timed Twitch drops, with automatic drop claiming and channel switching. 项目地址: https://gitcode.com/GitHub_Trending/tw/Twit…

作者头像 李华
网站建设 2026/9/12 15:04:28

终极离线OCR解决方案:3步完成高效文字识别

终极离线OCR解决方案&#xff1a;3步完成高效文字识别 【免费下载链接】wangfreexx-tianruoocr-cl-paddle 天若ocr开源版本的本地版&#xff0c;采用Chinese-lite和paddleocr识别框架 项目地址: https://gitcode.com/gh_mirrors/wa/wangfreexx-tianruoocr-cl-paddle 在日…

作者头像 李华