美文网首页
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