您这个层级和节点关系说的有点草率呀
来源:11-2 对称二叉树-代码实操

诺巴蒂
2020-01-08
n = Math.floor(log2(nodeIndex+1) )
这个是可以解释一下的,自己空想咋想出这么个公式;
每层级数量是等比数列,一层 1;二层 2;三层;4…
前 n 层有多少个就是:a1(1-q^n)/1-q
(a1 就是第一层数量1,n >=1)1*(1-2^n)/ 1 - 2
2^n - 1
也就是说,前n层就有 2^n - 1
个
下一层
起始索引是 2^n - 1
(2^n - 1 + 1 - 1
)
层数索引是 n
(数学里 n 是 1 起,对应树上是下一层的 层数 索引)
层数用起始节点算就是 n = log2(2^n - 1 + 1) = log2(first + 1)
后面索引其实就是第一个索引依次加1后Math.floor一下(因为直到下一行n才会加1)
这里您说的有点草率呀,我空看半天也没看出这个规律,还是算了一下…
写回答
1回答
-
快乐动起来呀
2020-01-09
这个很简单呀就是指数计算的公式,你对比看下
012020-12-10
相似问题