python - 在python中查找NOT BINARY TREEE的高度和深度
问题描述
我知道如何为二叉树做到这一点,但不知道标准树。
这效果不好,我不明白出了什么问题。
类节点:
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
感谢您的帮助。
解决方案
您不想在 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
推荐阅读
- javascript - 初始化函数 TypeError:无法读取 null 的属性“样式”
- javascript - 多个 Javascript 闭包和命名实践让我都转过身来
- javascript - jQuery - 从下拉菜单中预选
- json - JSONDecodeError:预期值:AWS Lambda 中的第 1 行第 1 列错误
- sql - 通过`EMPLOYEE`检查`ENTRY`的数量以及最后3个`ENTRY`中的`ACTIVITY`是否相同
- android - 从 firebase 读取数据并设置 textview 的值
- javascript - 反应状态切换只工作一次
- android - 当新消息到达Android Studio时,列表视图上突出显示的项目消失了
- php - 如何从php中的多个输入上传多个图像?
- c# - 如何使按钮多次单击(工作)?