LeetCode 剑指 Offer 27. 二叉树的镜像

题干如下:

请完成一个函数,输入一个二叉树,该函数输出它的镜像。

例如输入:

     4
   /   \
  2     7
 / \   / \
1   3 6   9

镜像输出:

     4
   /   \
  7     2
 / \   / \
9   6 3   1
示例 1:
输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]

链接:https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof

又是一个递归调用

Python实现

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

class Solution:
    def mirrorTree(self, root: TreeNode) -> TreeNode:
        return self.swap(root) # 通过递归,将所有非叶子节点的左右子树swap
    
    def swap(self, tree: TreeNode):
        if not tree:
            return None
        temp = tree.left
        tree.left = self.swap(tree.right)
        tree.right = self.swap(temp)
        return tree

你可能感兴趣的:(新的开始,之,数据结构与算法,二叉树,算法,python,leetcode,力扣)