【问题标题】:time complexity of creating of binary tree二叉树创建时间复杂度
【发布时间】:2020-10-09 21:05:09
【问题描述】:

有一种方法可以构建一棵二叉树,其中有 N 个完整层级 每一层I有两个信息部分等于I的节点。时间复杂度是多少取决于构建的树的层数?

private SimpleTreeNode fromNDigitToNode(int x,int k) throws Exception {
        IndexWrapper iw = new IndexWrapper();
        T parentValue = readValue((k-x+1)+"",iw);
        SimpleTreeNode parentNode = new SimpleTreeNode(parentValue);
        SimpleTreeNode leftNode = new SimpleTreeNode(parentValue);
        SimpleTreeNode rightNode = new SimpleTreeNode(parentValue);
        if(x<=1)return parentNode;
        int z = --x;
            parentNode.left = fromNDigitToNode(z,k);
            parentNode.right = fromNDigitToNode(z,k);

        return parentNode;
    }
public void fromNDigit(String Ndigit) throws Exception{
        int digit = Integer.parseInt(Ndigit);

        IndexWrapper iw = new IndexWrapper();
        SimpleTreeNode root = fromNDigitToNode(digit,digit);

        this.root = root;
    }
}

【问题讨论】:

  • 你能证明自己任何努力解决这个问题吗?
  • 贴出来的两个函数根本没有交互。
  • 对不起。我的错。代码已编辑
  • 那么,正好是 2^N 项?它们是在您开始时订购的吗?

标签: java time-complexity binary-tree


【解决方案1】:

我认为您的代码有缺陷。您创建 leftNode 和 rightNode,但不使用它们。此外,parentNode.left 和 parentNode.right 都是使用相同的参数创建的。对吗?

我不知道您的 IndexWrapper 的用途以及 readValue() 的作用。

最大的问题是:这永远不会停止。如果 x

所以我会说这是订单(永远)。

我是否可以建议您真正让您的代码工作,对其进行测试,然后找出复杂性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多