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

相关推荐

坚定的少年也不容易:说句不好听的,跟你的简历差不多的有几万人,在网上进好公司确实只能靠内推,但换个思路,你的资历足够在中小企业站稳脚跟,说白了,你现在就需要现实,找个小公司混资历和工作经历,来回跳槽,不仅仅可以跟深的了解你专业的行业,你还可以问你那些同事有没有更好的公司再去跳槽,直到一两年后你的经历实力,加上你所知道的那些公司,剩下的只是看你想在哪个好公司去干了
点赞 评论 收藏
分享
牛客网
牛客企业服务