在python中查找非二进制树的高度和深度

2024-04-25 19:56:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道如何处理二叉树,但不知道如何处理标准树

这不太好用,我不明白出了什么问题

类节点:

 def __init__(self,V):
     self.id=V
     self.f=[]


def height(n):
    if n==None:
       return -1

    if n.f==None:
        return 0

    for x in n.f:
        return height(x)+1

谢谢你的帮助


Tags: inselfnoneidfor标准returnif
1条回答
网友
1楼 · 发布于 2024-04-25 19:56:54

您不希望在for循环中返回:

for x in n.f:
    return height(x)+1

只需查看一个项目并返回。而是查找子对象高度的最大值:

class Node:
    def __init__(self,V):
        self.id = V
        self.f = []

    def height(self):
        if len(self.f) == 0:
            return 1
        return max(x.height() + 1 for x in self.f)

n = Node(1)
n.f = [Node(10), Node(11), Node(12)]
n.f[0].f = [Node(20)]

n.height()
# 3

相关问题 更多 >

    热门问题