首页 > 其他 > 详细

剑指Offer 18. 二叉树的镜像 (二叉树)

时间:2018-10-13 22:12:42      阅读:151      评论:0      收藏:0      [点我收藏+]

题目描述

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

输入描述:

二叉树的镜像定义:源二叉树 
    	    8
    	   /      	  6   10
    	 / \  /     	5  7 9 11
    	镜像二叉树
    	    8
    	   /      	  10   6
    	 / \  /     	11 9 7  5
题目地址
https://www.nowcoder.com/practice/564f4c26aa584921bc75623e48ca3011?tpId=13&tqId=11171&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
思路

思路1:递归,判断根节点是否为空,为空时,无需交换,不为空时,交换其左右节点。对左右子树进行递归。

技术分享图片

# -*- coding:utf-8 -*-
class TreeNode:
    def __init__(self,x):
        self.val = x
        self.left = None
        self.right = None

node1 = TreeNode(8)
node2 = TreeNode(6)
node3 = TreeNode(10)
node4 = TreeNode(5)
node5 = TreeNode(7)
node6 = TreeNode(9)
node7 = TreeNode(11)
node1.left = node2
node1.right = node3
node2.left = node4
node2.right = node5
node3.left = node6
node3.right = node7

class Solution:
    # 返回镜像树的根节点
    def Mirror(self, root):
        # 递归
        if not root:
            return
        temp = root.left
        root.left = root.right
        root.right = temp
        # if root.left:
        self.Mirror(root.left)
        # if root.right:
        self.Mirror(root.right)
        return root


if __name__ == __main__:
    result = Solution().Mirror(node1)
    print(result)

剑指Offer 18. 二叉树的镜像 (二叉树)

原文:https://www.cnblogs.com/huangqiancun/p/9784305.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!