python求二叉树高度_求二叉树高度代码报错,求大佬解答

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-30 22:03   11   0

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

代码如下

class BTree(object):

def __init__(self, data=None, left=None, right=None): #定义二叉树

self.data = data

self.left = left

self.right = right

def height(self): #求二叉树高度

if self.data is None:

return 0

elif self.data is None and self.right is None:

return 1

elif self.left is None and self.right is not None:

return 1 + self.right.height()

elif self.left is not None and self.right is None:

return 1 + self.left.height()

else:

return 1 + max(self.left.height(), self.right.height())

right_tree = BTree(6) #建立二叉树

right_tree.left = BTree(2)

right_tree.right = BTree(4)

left_tree = BTree(5)

left_tree.left = BTree(1)

left_tree.right = BTree(3)

tree = BTree(11)

tree.left = left_tree

tree.right = right_tree

tree.height() #求二叉树高度

运行之后会报错如下

AttributeError Traceback (most recent call last)

in

28 tree.right = right_tree

29

---> 30 tree.height()

in height(self)

14 return 1 + self.left.height()

15 else:

---> 16 return 1 + max(self.left.height(), self.right.height())

17

18 right_tree = BTree(6)

in height(self)

14 return 1 + self.left.height()

15 else:

---> 16 return 1 + max(self.left.height(), self.right.height())

17

18 right_tree = BTree(6)

in height(self)

14 return 1 + self.left.height()

15 else:

---> 16 return 1 + max(self.left.height(), self.right.height())

17

18 right_tree = BTree(6)

AttributeError: 'NoneType' object has no attribute 'height'

我想着是方法名字的问题吗还是什么,跟着视频敲的代码,不知道为什么运行不了

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP