当前位置:网站首页>牛客-TOP101-BM41
牛客-TOP101-BM41
2022-08-02 04:41:00 【一条吃猫的鱼】
import java.util.*;
public class Solution {
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 求二叉树的右视图 * @param xianxu int整型一维数组 先序遍历 * @param zhongxu int整型一维数组 中序遍历 * @return int整型一维数组 */
public TreeNode reConstructBinaryTree(int [] pre,int [] vin) {
int n = pre.length;
int m = vin.length;
if(n == 0 || m == 0){
return null;
}
TreeNode t = new TreeNode(pre[0]);
for(int i = 0; i < vin.length; i++){
if(pre[0] == vin[i]){
t.left = reConstructBinaryTree(Arrays.copyOfRange(pre, 1, i+1), Arrays.copyOfRange(vin, 0, i));
t.right = reConstructBinaryTree(Arrays.copyOfRange(pre, i+1, pre.length), Arrays.copyOfRange(vin, i+1, vin.length));
break;
}
}
return t;
}
public ArrayList<Integer> rightSideView(TreeNode root){
ArrayList<Integer> list = new ArrayList<>();
Deque<TreeNode> deque = new LinkedList<>();
deque.offerLast(root);
while(!deque.isEmpty()){
int size = deque.size();
TreeNode t = null;
while(size != 0){
t = deque.pollFirst();
if(t.left != null)
deque.offerLast(t.left);
if(t.right != null)
deque.offerLast(t.right);
size--;
}
list.add(t.val);
}
return list;
}
public int[] solve (int[] xianxu, int[] zhongxu) {
// write code here
if(xianxu.length == 0 || zhongxu.length == 0){
return new int[0];
}
TreeNode root = reConstructBinaryTree(xianxu, zhongxu);
ArrayList<Integer> list = rightSideView(root);
int[] res = new int[list.size()];
for(int i = 0; i < list.size(); i++)
res[i] = list.get(i);
return res;
}
}
边栏推荐
猜你喜欢
随机推荐
Js数据类型转化之数组的join方法
力扣练习——44 路径总和 III
在 .NET MAUI 中如何更好地自定义控件
已更新 联通 电信 tiny模式
UE4 AI行为树实现随机和跟随移动
物联网通信协议全解析
UE4 3DUI显示与交互案例
Redis常见题型
找倍数(DAY 98)
【Gazebo入门教程】第一讲 Gazebo的安装、UI界面、SDF文件介绍
[网鼎杯 2020 青龙组]singal
力扣练习——42 二叉树的层次遍历 II
如何运用3DGIS技术整合智慧社区综合管理解决方案
IOT物联网概述及应用层架构入门篇
C - The Domino Effect(dfs+回溯)
投资组合分析:portfolio_analysis.Tangenvy_portfolio(切点组合)
线代005
棋盘问题(DAY 94)
使用pycharm debug 深度学习代码
【七夕】是时候展现专属于程序员的“浪漫”了









