关注
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");
}
}
}
查看原帖
点赞 5
相关推荐
07-03 16:02
门头沟学院 Java 点赞 评论 收藏
分享
06-23 12:08
广州大学 硬件测试 小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
昨天 12:20
郑州大学 材料工程师 码农索隆:看我帖子https://www.nowcoder.com/discuss/764127692135370752,神州信息那个2B董成杰,我离职的时候,直接干他干了一仗
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 🌟择难路,未有疑,四非学院本运气拉满,春招拿下大厂后端6.3W
- 2... 秋招应该侧重准备哪个部分的内容1.4W
- 3... 恋爱四年没想到过自己会出轨1.1W
- 4... 腾讯云智后台开发暑期面经9725
- 5... 史上最细SQL实战系列:sql笔试例题总结篇(建议收藏)8947
- 6... 25届毕业现在在家呆了一个多月,没工作7037
- 7... 其实主包早就找到工作了,但还是每天都刷6524
- 8... 字节实习week6:听leader吐槽当前的应届生候选人们5592
- 9... 离开软件测试才发现外面没有雨5422
- 10... 作为实习生,我问薪无愧5176
正在热议
更多
# 应届生,你找到工作了吗 #
2961次浏览 38人参与
# 双非应该如何逆袭? #
173923次浏览 2969人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
39120次浏览 285人参与
# 简历当中有水分算不算造假? #
4705次浏览 47人参与
# 春招进度记录 #
341433次浏览 3243人参与
# 实习生的蛐蛐区 #
4589次浏览 42人参与
# 百度秋招提前批进度 #
105298次浏览 1124人参与
# 谈薪时HR压价该怎么应对 #
205921次浏览 3177人参与
# 三一集团提前批进度交流 #
22373次浏览 139人参与
# 毕业旅行去哪玩儿 #
8056次浏览 123人参与
# 双非有机会进大厂吗 #
434703次浏览 4403人参与
# 百度求职进展汇总 #
406492次浏览 4718人参与
# 正在春招的你,也参与了去年秋招吗? #
308797次浏览 2523人参与
# 非技术岗投递进展 #
144545次浏览 1264人参与
# 上班到公司第一件事做什么? #
60707次浏览 521人参与
# 我的OC时间线 #
815382次浏览 7773人参与
# 秋招盘点:机械人值得去的企业 #
72051次浏览 670人参与
# 材料进Fab厂真的劝退吗? #
43310次浏览 184人参与
# 没有合适的工作,你会先找个干着,还是考公考研 #
116236次浏览 1133人参与
# 百度工作体验 #
230101次浏览 2010人参与
# 如果可以,你希望哪个公司来捞你 #
96760次浏览 397人参与