关注
public class TreeNode {
//树节点的结构
int val;
TreeNode left;
TreeNode right;
public TreeNode(int val) {
this.val = val;
left = null;
right = null;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int T = in.nextInt();
for (int i = 0; i < T; i++) {
int N = in.nextInt();
//先把每个节点存在数组tree中
TreeNode[] tree = new TreeNode[N];
int[] val = new int[N];
int[] left = new int[N];
int[] right = new int[N];
int[] root = new int[N];
for (int j = 0; j < N; j++) {
val[j] = in.nextInt();
tree[j] = new TreeNode(val[j]);
left[j] = in.nextInt();
right[j] = in.nextInt();
}
//添加节点的左右子节点,同时记录哪些点是有父节点的,有父节点的把root数组的相应位置标记为1
for (int j = 0; j < N; j++) {
if (left[j] != -1) {
tree[j].left = tree[left[j]];
root[left[j]] = 1;
}
if (right[j] != -1) {
tree[j].right = tree[right[j]];
root[right[j]] = 1;
}
}
//广度优先搜索
Queue<TreeNode> q = new LinkedList<TreeNode>();
//根节点一定不是任何节点的左右子节点,所以root数组中为0的那个节点就是根结点
for (int j = 0; j < N; j++) {
if (root[j] == 0) {
q.add(tree[j]);
break;
}
}
//presum记录上一层的和,sum记录下一层的和
int presum = -1;
boolean flag = true;
while (!q.isEmpty()) {
int size = q.size();//size记录当前层有多少个节点
int index = 0;//index记录当前层有多少个节点已经搜索过了
int sum = 0;//记录当前层节点的权值之和
while (index < size) {
TreeNode tmp = q.poll();
sum += tmp.val;
index++;
if (tmp.left != null)
q.add(tmp.left);
if (tmp.right != null)
q.add(tmp.right);
}
if (presum == -1) {
presum = sum;//第一层时presum为-1,令他等于当前层的结果
} else if (presum > sum) {//不为第一层时比较当前层和上一层的和是否满足递增,不满足则退出循环输出NO
flag = false;
break;
}
}
if (flag)
System.out.println("YES");
else
System.out.println("NO");
}
}
}
不知道到底哪不对 一直是0
查看原帖
点赞 评论
相关推荐
04-29 09:15
哈尔滨工业大学 电子信息类 点赞 评论 收藏
转发
点赞 评论 收藏
转发
点赞 评论 收藏
转发
牛客热帖
正在热议
# 牛友的五一计划 #
28163次浏览 485人参与
# 市场营销面经 #
1877次浏览 82人参与
# 牛客帮帮团来啦!有问必答 #
423984次浏览 8057人参与
# 许愿池 #
67459次浏览 1489人参与
# 晒一晒我的offer #
2873354次浏览 50270人参与
# 2022届毕业生现状 #
287592次浏览 4121人参与
# 你的秋招进展怎么样了 #
450963次浏览 12996人参与
# 如何看待offer收割机的行为 #
199365次浏览 3039人参与
# 互联网公司评价 #
64266次浏览 912人参与
# 硬件人的春招flag #
14806次浏览 203人参与
# 非技术岗薪资爆料 #
11183次浏览 211人参与
# 实习好累,可以辞职全力准备秋招吗 #
2810次浏览 60人参与
# 找工作,你会甘心进小厂还是猛冲大厂 #
26033次浏览 262人参与
# 产品实习,你更倾向大公司or小公司 #
31748次浏览 499人参与
# 秋招开了,你想投哪些公司呢 #
102805次浏览 3135人参与
# 浅聊一下我实习的辛苦费 #
71866次浏览 656人参与
# 提前批真的不会影响正式批吗 #
18391次浏览 231人参与
# 双非本科求职如何逆袭 #
176125次浏览 2643人参与
# 在国企工作的人,躺平了吗? #
74871次浏览 919人参与
# 实习想申请秋招offer,能不能argue薪资 #
4639次浏览 70人参与