#一棵树采用孩子链存储结构,设计一个算法求其高度 #对于树的一些操作,递归的使用比较普遍 #基本的递归思想是立足与一个根节点,看下面子树的长度,挑一个最长的子树,用它的长度+1就是这个根结点所在树的最大高度 #递归结构如下:t是根节点 #f(t)=0 t为空 #f(t)=1 t为叶子结点 #f(t)=max(t.sons[i])+1 else 挑一个最长的子树,用它的长度+1就是这个根结点所在树的最大高度
def Height(t):
if len(t.sons)==0:
return 1
maxsh=0
for i in range(len(t.sons)):#遍历根节点的所有子树
sh=Height(t.sons[i])
maxsh=max(maxsh,sh)#不断更新最高树的高度
return maxsh+1