这里应该是讨论完全二叉树,规定总size为n,要求根的左子树的最大size。(由于右子树 size总是<=左子树size) 那么显然,观察最底层节点数目为0, 1, 2...的情况,显然半满的时候左子树达到了最大 。以下求此时左子树的大小: 设底层半满时节点树为x,则再加x个节点,就是满树:n + x = 2x * 2 - 1 = 满树size 可得n = 3x - 1 满树时,左子树节点数 = (满树size - 1) / 2 = 2x -1 ~= 2n / 3
一棵以节点i为根的、大小为n的子树上,i节点的子树大小至多为2n/3(最坏情:底层恰好半满的时候)
最新推荐文章于 2024-06-26 11:30:31 发布