Java0.面试技能算法

剑指offer面试题19----二叉树的镜像

2019-10-30  本文已影响0人  minningl

题目:操作给定的二叉树,将其变换为源二叉树的镜像。

输入描述:
二叉树的镜像定义:源二叉树
8
/
6 10
/ \ /
5 7 9 11
镜像二叉树
8
/
10 6
/ \ /
11 9 7 5

思路:二叉树的镜像就是要对左右进行颠倒,简化为两个数据的镜像的话就是对这两个数据进行交换位置,交换位置的操作就是先定义一个temp变量,然后对其中的一个进行赋值,再用temp对另一个进行赋值。回到二叉树镜像这里,就是多了一个递归操作,我们对树的子树进行递归调用,其他逻辑保持不变

Python代码如下:

    # -*- coding:utf-8 -*-
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    class Solution:
        # 返回镜像树的根节点
        def Mirror(self, root):
            
            if not root:
                return None
            
            temp = root.left
            root.left = self.Mirror(root.right)
            root.right = self.Mirror(temp)
            
            return root
上一篇下一篇

猜你喜欢

热点阅读