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