我希望有人可以帮助我理解即将到来的 CS 课程的二叉树。更具体地说,我想知道是否有人可以帮助我解决这个问题:“返回一棵所有项目都已平方的树”
这是我的班级树:
clas Tree(object):
def __init__(self, entry, left=None, right=None):
self.entry = entry
self.left = left
self.right = right
def __repr__(self):
args = repr(self.entry)
if self.left or self.right:
args += ', {0}, {1}'.format(repr(self.left), repr(self.right))
return 'Tree({0})'.format(args)
因此,如果我有一个名为 t 的树,其中 t 定义为:
t = Tree(1,Tree(2,Tree(3)),Tree(4,Tree(5)))
我想t
返回Tree(1,Tree(4,Tree(9)),Tree(16,Tree(25)))
所以我想出了这个函数,它返回一个平方树,但我想摆脱“无”
def square_tree(tree,fn):
if(tree == None):
return tree
else:
tree.entry = fn(tree.entry)
map_tree(tree.left,fn)
map_tree(tree.right,fn)
return tree
输出:树(4,树(9,树(16),无),树(25,树(36),无))
有什么建议么?