关注
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
查看原帖
点赞 评论
相关推荐
10-12 19:23
重庆邮电大学 Java
敢逐云霄志:你打招呼语怎么能这么长,hr都没看下去的欲望,简明扼要说重点,就读于某某学校某某专业,26届应届毕业生,学信网可查,先后在某某公司实习过(如有),然后做过什么项目,想找一份什么样的工作,可实习几个月以上,期待您的回复。 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 那些年,我收到的‘奇葩’回复 #
24339次浏览 163人参与
# 材料人,你最希望上岸的是? #
12287次浏览 58人参与
# 小红书开奖了 #
32578次浏览 156人参与
# OC/开奖 #
191934次浏览 1325人参与
# 蚂蚁求职进展汇总 #
131826次浏览 1204人参与
# 职场中那些令人叹为观止的八卦 #
31011次浏览 244人参与
# 百度秋招 #
50970次浏览 385人参与
# 秋招你经历过哪些无语的事 #
22971次浏览 240人参与
# 校招薪资来揭秘 #
85432次浏览 530人参与
# 实习需要主动找活干吗? #
55383次浏览 296人参与
# 你今年的保底offer是哪家 #
144063次浏览 620人参与
# 2022毕业即失业取暖地 #
120567次浏览 709人参与
# 秋招吐槽大会 #
93839次浏览 802人参与
# 你秋招最后悔的选择 #
19019次浏览 137人参与
# AI时代,哪些岗位最容易被淘汰 #
12434次浏览 102人参与
# 实习教会我的事 #
42250次浏览 342人参与
# 我的职场社死时刻 #
23292次浏览 173人参与
# 租房前辈的忠告 #
292485次浏览 7277人参与
# 秋招投简历越早越好吗 #
98786次浏览 839人参与
# 为了秋招你都做了哪些准备? #
24842次浏览 497人参与
# 扒一扒那些奇葩实习经历 #
132298次浏览 1125人参与
# 你后悔选择现在的专业吗 #
102090次浏览 697人参与
