美文网首页
LeetCode No.10 所有可能的满二叉树

LeetCode No.10 所有可能的满二叉树

作者: MRYDM | 来源:发表于2019-06-14 20:40 被阅读0次

1. LeetCode894题目链接链接

https://leetcode-cn.com/problems/all-possible-full-binary-trees/

2.题目解析

这个题刚看到,一脸懵逼。一点思路没有,只能看下题解,看完题解之后但还是一直半解,但是大概的思路是有了,所谓满二叉树,就是一个节点下,只能有0或者2个节点。所以节点数一定是个奇数。然后假设有5个节点,除了第一个节点之外,左边只能是3或者是1,右边也是只能是3或者1。我们只需要在3个节点之后,分别计算左右两边的节点数量。然后使用递归的方式,继续往下计算。

 public List<TreeNode> allPossibleFBT(int N) {
    List<TreeNode> list = new ArrayList<>();
    if (N == 1 ) {
        list.add(new TreeNode(0));
    } else if (N % 2 == 0){
        
    }else {
        TreeNode node;
        for (int i = 1; i < N; i += 2) {
            //先递归左边,在递归右边
            for (TreeNode left : allPossibleFBT(i)) {
                for (TreeNode right : allPossibleFBT(N - i - 1)) {
                    node = new TreeNode(0);
                    node.left = left;
                    node.right = right;
                    list.add(node);
                }
            }
        }
    }
    return list;
}
提交结果

相关文章

网友评论

      本文标题:LeetCode No.10 所有可能的满二叉树

      本文链接:https://www.haomeiwen.com/subject/nhrmfctx.html