894. 所有可能的满二叉树
满二叉树是一类二叉树,其中每个结点恰好有 0 或 2 个子结点。
返回包含 N 个结点的所有可能满二叉树的列表。 答案的每个元素都是一个可能树的根结点。
答案中每个树的每个结点都必须有 node.val=0。
你可以按任何顺序返回树的最终列表。
链接
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
   | 
 
 
 
 
 
 
 
 
 
 
 
 
  function allPossibleFBT(n: number): Array<TreeNode | null> {   const memoMap: Record<number, TreeNode[]> = {}   function dfs(N: number) {     const ans: TreeNode[] = []     if (!memoMap[N]) {       if (N === 1) {         ans.push(new TreeNode(0))       } else if (N % 2 === 1) {         for(let i = 0; i < N; i++) {           let y = N - 1 - i           for (const left of dfs(i)) {             for (const right of dfs(y)) {               const b = new TreeNode(0)               b.left = left               b.right = right               ans.push(b)             }           }         }       }       memoMap[N] = ans     }     return memoMap[N]   }   return dfs(n) };
 
  |