leetcode 두 갈래 트리 렌즈

함수를 완성하고 두 갈래 트리를 입력하십시오. 이 함수는 거울을 출력합니다.
 :
     4
   /   \
  2     7
 / \   /   \
1   3 6   9
 :
     4
   /   \
  7     2
 / \   / \
9   6 3   1

address
# Definition for a binary tree node.
class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None


def mirror_tree(root: TreeNode) -> TreeNode:
    """
     , (dfs) ,  /  ,
     。
    """
    #  1.
    # if not root:
    #     return
    # root.left, root.right = root.right, root.left
    # mirror_tree(root.left)
    # mirror_tree(root.right)
    #
    # return root

    #  2.
    # if not root:
    #     return
    # tmp = root.left
    # root.left = mirror_tree(root.right)
    # root.right = mirror_tree(tmp)
    #
    # return root

    """
     ( )  nodenode ,  nodenode   /  。
    """
    #  ( )
    if not root:
        return
    stack = [root]
    while stack:
        node = stack.pop()
        if node.left:
            stack.append(node.left)
        if node.right:
            stack.append(node.right)
        node.left, node.right = node.right, node.left

    return root

좋은 웹페이지 즐겨찾기