返回

#yyds干货盘点# 名企真题专题:将满二叉树转换为求和树

发布时间:2023-01-01 03:37:04 268
# java# java# 数据

1.简述:

描述

给出满二叉树的前序遍历结果和中序遍历结果,编写算法将其转化为求和树

什么是求和树:二叉树的求和树, 是一颗同样结构的二叉树,其树中的每个节点将包含原始树中的左子树和右子树的和。

二叉树:

#yyds干货盘点# 名企真题专题:将满二叉树转换为求和树_中序遍历

求和树:

#yyds干货盘点# 名企真题专题:将满二叉树转换为求和树_中序遍历_02

二叉树给出前序和中序输入,求和树要求中序输出;

所有处理数据不会大于int;

数据范围:二叉树的节点数满足 #yyds干货盘点# 名企真题专题:将满二叉树转换为求和树_中序_03 ,节点上的值满足 #yyds干货盘点# 名企真题专题:将满二叉树转换为求和树_二叉树_04

输入描述:

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

输出描述:

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

示例1

输入:

10 -2 8 -4 6 7 5
8 -2 -4 10 7 6 5

输出:

0 4 0 20 0 12 0

2.代码实现:

import java.util.*;

public class Main{
static int[] res;
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String[] s=sc.nextLine().split(" ");
int n=s.length;
res=new int[n];
int[] nums=new int[n];
for(int i=0;i nums[i]=sc.nextInt();
}
traverse(nums,0,n-1);
StringBuilder sb=new StringBuilder();
for(int i=0;i sb.append(res[i]).append(" ");
}
System.out.print(sb.toString().trim());
}
public static int traverse(int[] nums,int i,int j){
int mid=(i+j)/2;
if(i==j)
return nums[i];
res[mid]=traverse(nums,i,mid-1)+traverse(nums,mid+1,j);
return res[mid]+nums[mid];
}
}

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
线程锁的使用 lock 2023-01-01 03:20:37