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

宝安西乡做网站国内免费推广产品的网站

宝安西乡做网站,国内免费推广产品的网站,有创意的web毕设题目,香港做最好看的电影网站文章目录 题目描述输入描述输出描述示例1思路代码 题目描述 给出一个二叉树如下图所示: 6/ \7 9\ / -2 6 请由该二叉树生成一个新的二叉树,它满足其树中的每个节点将包含原始树中的左子树和右子树的和。 20 (7-296)/ \-2 6\ / 0 0 左子树…

文章目录

  • 题目描述
  • 输入描述
  • 输出描述
  • 示例1
  • 思路
  • 代码

题目描述

给出一个二叉树如下图所示:

     6/ \7   9\  /  -2 6  

请由该二叉树生成一个新的二叉树,它满足其树中的每个节点将包含原始树中的左子树和右子树的和。

      20 (7-2+9+6)/   \-2    6\   /  0  0 

左子树表示该节点左侧叶子节点为根节点的一颗新树;右子树表示该节点右侧叶子节点为根节点的一颗新树

输入描述

2行整数,
第1行表示二叉树的中序遍历,
第2行表示二叉树的前序遍历,以空格分割

例如:

7 -2 6 6 9
6 7 -2 9 6

输出描述

1行整数,表示求和树的中序遍历,以空格分割

例如:

输出1 -2 0 20 0 6

示例1

输入:
-3 12 6 8 9 -10 -7
8 12 -3 6 -10 9 -7

输出:
0 3 0 7 0 2 0

思路

1 . 前序中序构造二叉树

前序: 中左右; 判断“中”是第一个元素。
中序: 根据前序找到的“中” ,判断左右子树是谁。(此时可以提前计算左右子树的和)

代码

public class Demo11 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 中序int[] in = Arrays.stream(scanner.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();// 前序int[] pre = Arrays.stream(scanner.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();// 最终中序结果int[] resMid = new int[in.length];buildTree(pre, in, resMid, 0, pre.length, 0, in.length);System.out.println(Arrays.toString(resMid));scanner.close();}/*** @param pre      前序数组* @param in       中序数组* @param resMid   最终输出中序结果* @param preStart 前序开始索引* @param preEnd   前序结束索引* @param inStart  中序开始索引* @param inEnd    中序结束索引*/public static void buildTree(int[] pre, int[] in, int[] resMid, int preStart, int preEnd, int inStart, int inEnd) {if (preStart == preEnd || inStart == inEnd) {return;}if (preEnd - preStart == 1 && inEnd - inStart == 1) {return;}// 中  为第一个元素int rootValue = pre[preStart];// 中  在中序中的位置int index = 0;for (int i = inStart; i < inEnd; i++) {if (in[i] == rootValue) {index = i;break;}}// 中序数组 左子树int inLeftStart = inStart;int inLeftEnd = index;// 中序数组的右子树int inRightStart = index + 1;int inRightEnd = inEnd;// 前序数组的  左子树int preLeftStart = preStart + 1;int preLeftEnd = preLeftStart + (index - inStart);// 前序数组的 右子树int preRightStart = preLeftEnd;int preRightEnd = preEnd;// 计算左右子树的和int[] inLeft = Arrays.copyOfRange(in, inLeftStart, inLeftEnd);int[] inRight = Arrays.copyOfRange(in, inRightStart, inRightEnd);resMid[index] = Arrays.stream(inLeft).sum() +Arrays.stream(inRight).sum();// 递归buildTree(pre, in, resMid, preLeftStart, preLeftEnd, inLeftStart, inLeftEnd);buildTree(pre, in, resMid, preRightStart, preRightEnd, inRightStart, inRightEnd);}
}
http://www.ds6.com.cn/news/6818.html

相关文章:

  • 和田网站建设佛山网站建设维护
  • 太仓高端网站制作2023疫情最新消息今天
  • 网站建设的开发方式知乎今日要闻新闻
  • 苏州网络公司机房建设seo整站优化哪家好
  • 做刷机网站赚钱吗网站建设推广优化
  • 如何用自己的电脑做网站服务器seo建站收费地震
  • 南昌seo网站设计发帖推广平台
  • 网站在百度搜不到长春网站快速排名提升
  • 金山区网站制作中国国家培训网官网入口
  • 管理公司网站建设百度一下你就知道了
  • 专业微网站建设深圳市昊客网络科技有限公司
  • 仙桃做网站500强企业seo服务商
  • 张家港手机网站google ads 推广
  • 动漫制作必须会画画吗优化方案英语
  • 湖北建科建设工程有限公司网站百度网盘app免费下载安装老版本
  • 学做标书网站seo优化教程
  • 苏州网站建设点一点百度爱采购怎样入驻
  • 液压产品做哪个网站好怎么做网络宣传推广
  • 江西网站建设开发网站排名优化课程
  • 一个网站如何做双语河南网站seo靠谱
  • 网站生成海报功能怎么做的搜索引擎排名营销
  • 平安区wap网站建设公司seo推广是什么意思
  • 网站返回404百度竞价排名规则及费用
  • 常用网页设计软件宁波正规seo推广公司
  • 哪个行业最需要做网站北京已感染上千万人
  • 在国外做h网站怎么样外贸国际网站推广
  • 做网站推广需要什么今日国际新闻最新消息事件
  • 做软件常用的网站有哪些软件有哪些云搜索引擎
  • 网站建设什么打王思聪沈阳头条今日头条新闻最新消息
  • 电子商城网站制作数据库网页设计图