第一行输入整数n,m。(分别表示树1和树2的节点数,1<=n<=100) 第二行,第三行分别输入两棵树每个节点的权值p。(1<=p<100)
例如: 两颗二叉树是: Tree 1 1 / 3 2 / 5 Tree 2 2 / 1 3 4 7 合并后的树为 3 / 4 5 / 5 4 7
相当于下标相同的相加,其他的保留
public static void main(String[] args) throws Exception{
Scanner scan = new Scanner(System.in);
String str_0 = scan.nextLine();
String[] line_list_0 = str_0.trim().split(" ");
ArrayList<Integer> arr0 = new ArrayList<>();
for(int i = 0; i < line_list_0.length; i++){
arr0.add(Integer.parseInt(line_list_0[i]));
}
String str_1 = scan.nextLine();
String[] line_list_1 = str_1.trim().split(" ");
ArrayList<Integer> arr1 = new ArrayList<>();
for(int i = 0; i < line_list_1.length; i++){
arr1.add(Integer.parseInt(line_list_1[i]));
}
String str_2 = scan.nextLine();
String[] line_list_2 = str_2.trim().split(" ");
ArrayList<Integer> arr2 = new ArrayList<>();
for(int i = 0; i < line_list_2.length; i++){
arr2.add(Integer.parseInt(line_list_2[i]));
}
scan.close();
List<Integer> result = solution(arr0, arr1, arr2);
for (int i = 0; i < result.size(); i++){
System.out.print(result.get(i) + " ");
}
}
public static List<Integer> solution(ArrayList<Integer> arr0, ArrayList<Integer> arr1, ArrayList<Integer> arr2){
List<Integer> result = IntStream.range(0, Math.max(arr1.size(), arr2.size()))
.map(i -> {
if(i>arr1.size()-1)
return arr2.get(i);
if(i>arr2.size()-1)
return arr1.get(i);
return arr1.get(i) + arr2.get(i);
})
.boxed().collect(Collectors.toList());
return result;
}