关注
static int res = 0;
public static void main2(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[][] nums = new int[n][2];
for (int i = 0; i < n; i ++) {
nums[i][0] = in.nextInt();
nums[i][1] = in.nextInt();
}
isFUllTree2(nums, 1);
System.out.println(res);
}
public static int[] isFUllTree2(int[][] nums, int root) {
if (-1 == root) {
return new int[] {0, 1}; // 走到了叶子结点时,高度为0,也是满树
}
int[] left = isFUllTree2(nums, nums[root - 1][0]); // 递归的遍历左子树
int[] right = isFUllTree2(nums, nums[root - 1][1]); // 递归地遍历右子树
int curHeight = Math.max(left[0], right[0]) + 1; // 计算当前结点高度
if (left[0] == right[0] && 1 == left[1] && 1 == right[1]) {
// 如果左右子树的高度相同且都是满树,则当前树也是满树
res++;
return new int[] {curHeight, 1};
} else {
return new int[] {curHeight, 0};
}
}
查看原帖
点赞 4
相关推荐
02-20 16:25
蚌埠坦克学院 安全工程师 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 笔试 #
2347601次浏览 27354人参与
# 关于春招你都做了哪些准备? #
76829次浏览 495人参与
# 牛友故事会 #
504992次浏览 11548人参与
# 运营面经 #
94220次浏览 1173人参与
# 职业发展规划如何回答 #
31519次浏览 184人参与
# 机械人的offer怎么选 #
127813次浏览 731人参与
# 大城市找工作会更容易吗 #
7482次浏览 38人参与
# 担心入职之后被发现很菜怎么办 #
112018次浏览 695人参与
# 研究所笔面经互助 #
61469次浏览 416人参与
# 你上一次加班是什么时候? #
43220次浏览 303人参与
# 找工作有哪些冷知识 #
16283次浏览 197人参与
# 面试官是我前女友 #
94064次浏览 712人参与
# 谈薪时HR压价该怎么应对 #
189313次浏览 3042人参与
# 如何KTV领导 #
46376次浏览 367人参与
# 你最希望上岸的公司是? #
111845次浏览 620人参与
# CVTE工作体验 #
8779次浏览 20人参与
# 小米提前批笔试难吗 #
30686次浏览 342人参与
# 上班苦还是上学苦呢? #
210528次浏览 1280人参与
# 得物求职进展汇总 #
84457次浏览 764人参与
# 技术转行的心路历程 #
45665次浏览 651人参与