이진 트리 파이썬 반전

이것은 찾을 수 있는 leetcode 질문입니다here.

이진 트리가 주어지고 이를 반전시키거나 모든 왼쪽 노드를 해당하는 오른쪽 노드로 교체해야 합니다.

각 BinaryTree 노드에는 정수 Value, 왼쪽 자식 노드 및 오른쪽 자식 노드가 있습니다. 자식 노드는 BinaryTree 자체 또는 None/Null일 수 있습니다.

# 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 함수를 재귀적으로 호출하여 다음 왼쪽 및 오른쪽 자식 노드를 계속 교환합니다.

좋은 웹페이지 즐겨찾기