一棵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);
}
}