今後の 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
出力: Tree(4, Tree(9, Tree(16), None), Tree(25, Tree(36), None))
助言がありますか?