十一届蓝桥模拟赛 十层二叉树结点 JAVA

一棵10层的二叉树,最多包含多少个结点?

注意:当一棵二叉树只有一个结点时为一层。

思路:一看注意那块就知道它肯定要搞幺蛾子,我是直接在本本上面画了五层二叉树,找到规律后直接上代码,规律就是2的10次幂-1。答案:1023

第一种的这个解法着实像个憨憨 -.-#

public class Main {
	public static void main(String[] args) {
		int n1 = 1;
		int n2 = 2;
		int n3 = n2 * 2;
		int n4 = n3 * 2;
		int n5 = n4 * 2;
		int n6 = n5 * 2;
		int n7 = n6 * 2;
		int n8 = n7 * 2;
		int n9 = n8 * 2;
		int n10 = n9 * 2;
		System.out.println(n10 + n9 + n8 + n7 + n6 + n5 + n4 + n3 + n2 + n1);
	}
}

第二种的解法,题目要求第一层给固定1,然后枚举9层。

public class Main  {
	public static void main(String[] args) {
		int ans = 1;
		int num = 1;
		for (int i = 1; i <= 9; i++) {
			num *= 2;
			ans += num;   // 10层节点相加
		}
		System.out.println(ans);  
	}
}

第三种解法,按着规律就是2的10次幂-1,记得给int类型。

public class Main {
	public static void main(String[] args) {
		System.out.println((int) Math.pow(2, 10) - 1);
	}
}

小剧场:要保持思想高度。Keep your mind higt.

发布了213 篇原创文章 · 获赞 453 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/weixin_43771695/article/details/105607360
今日推荐