先上题目:
一颗有n(n>0)个节点的满二叉树共有几个叶子节点和非叶子节点?请写出解题过程
方法有两种:设有x个叶子节点和y个非叶子节点
法一:若该该二叉树有k层(k>0),则
第一层有一个节点、
第二层有两个节点
第三层有四个节点
第四层有八个几点
……
第k层有2的k-1次方个节点
则一颗k层的满二叉树共有1+2+4+……+2的k-1次方= n(1)
(1)*2 = 2+4+……+2的k-1次方+2的k次方 = 2n(2)
由(1)、(2)易得n = 2的k次方 – 1(3)
又因为叶子节点x = 2的k-1次方 = y+1(4)
由(3)、(4)易得x=(n+1)/2,y=(n-1)/2
法二:n = x + y(1)
经过求索思考得 y = x – 1(2)
x = (n+1)/2,y = n – y = x – 1 = (n – 1)/2
挺有意思的,锻炼下大脑别生锈了