Это вопрос летекода, который можно найти здесь
Вам предоставляется бинарное дерево, и вы должны инвертировать его или подняться на каждый левый узел с соответствующим правым узлом.
Каждый узел BinaryTree имеет целочисленное значение, левый узел ребенка и правый узел для детей. Детские узлы могут быть самими к бинаррингу или нет/нуль.
# Given class definition of a binary tree # DO NOT TOUCH THIS class BinaryTree: def __init__(self, value): self.value = value self.left = None self.right = None def invertBinaryTree(tree): if tree is None: return swapLeftAndRight(tree) invertBinaryTree(tree.left) invertBinaryTree(tree.right) def swapLeftAndRight(tree): tree.left, tree.right = tree.right, tree.left
Swapleftandright
Функция является наиболее важной частью, где она осуществляет фактическое помещение левых и правых узлов. Python действительно хороший, где вы можете положить обмен на одну строку.
Затем вы рекурцируете функцию InvertBinaryTree, чтобы продолжать заменять следующие левые и правильные детские узлы.
Оригинал: “https://dev.to/jabermudez11/invert-binary-tree-python-5dam”