博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指 Offer 27. 二叉树的镜像
阅读量:4101 次
发布时间:2019-05-25

本文共 696 字,大约阅读时间需要 2 分钟。

题目

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

例如输入:

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]

思路:其实和互换变量一样,通过中间变量存储左子树的变量才能做镜像

# Definition for a binary tree node.# class TreeNode(object):#     def __init__(self, x):#         self.val = x#         self.left = None#         self.right = Noneclass Solution(object):	def mirrorTree(self,root):		if not root:return 		tmp=root.left		root.left=mirrorTree(root.right)		root.right=mirrorTree(tmp)		return root

Q: 为何需要暂存 rootroot 的左子节点?

A: 在递归右子节点 “root.left = mirrorTree(root.right);root.left=mirrorTree(root.right);” 执行完毕后, root.leftroot.left 的值已经发生改变,此时递归左子节点 mirrorTree(root.left)mirrorTree(root.left) 则会出问题。

转载地址:http://kiwsi.baihongyu.com/

你可能感兴趣的文章
【深入理解JVM】学习笔记——-1、JVM基本结构
查看>>
Windows点击任务栏中的文件夹直接进入资源管理器界面设置
查看>>
【生活小记】——-1、年轻人不要老熬夜!
查看>>
最常用的linux命令
查看>>
【Python】学习笔记——-2.2、字符串和编码
查看>>
【Python】学习笔记——-2.3、使用List和Tuple
查看>>
【Python】学习笔记——-2.4、条件判断
查看>>
【Python】学习笔记——-2.5、循环
查看>>
【Python】学习笔记——-2.6、使使用dict和set
查看>>
【Python】学习笔记——-3.0、函数
查看>>
【Python】学习笔记——-3.1、调用函数
查看>>
【Python】学习笔记——-3.2、定义函数
查看>>
【Python】学习笔记——-3.3、函数的参数
查看>>
【Python】学习笔记——-3.4、递归函数
查看>>
【Python】学习笔记——-4.0、高级特性
查看>>
【Python】学习笔记——-4.1、切片
查看>>
【Python】学习笔记——-4.2、迭代
查看>>
【Python】学习笔记——-4.4、生成器
查看>>
【Python】学习笔记——-4.5、迭代器
查看>>
【死磕JVM】——-1、JVM基本结构附思维导图
查看>>