二叉树的排列组合
给定 n 个节点,计算可以构成多少种不同的二叉树
n <= 1
时,二叉树的排列方式为 1 种根据公式,计算
-
代码块
import java.util.Scanner; public class Pailiezuhe { public static void main(String[] args) { Scanner sc = new Scanner(System.in); long nodeNum = sc.nextLong(); catalan(nodeNum); sc.close(); } /** * 二叉树排列组合公式 * @param nodeNum:节点个数 * (2nodeNum 与 nodeNum 组合) / (nodeNum + 1) */ public static void catalan(long nodeNum) { long zuhe = jiecheng(2 *nodeNum) / (jiecheng(nodeNum) * jiecheng((2 * nodeNum) - nodeNum)); long result = zuhe / (nodeNum + 1); System.out.println(result); } /** * 阶乘计算函数(3!=6;5!=120),参数使用 long ,预防精度误差 * @param num * @return */ public static long jiecheng(long num) { if (num >=1) { return jiecheng(num - 1) * num; } return 1; } }