剑指offer-python刷题-二叉树的镜像
发布日期:2021-07-28 12:03:09
浏览次数:3
分类:技术文章
本文共 1011 字,大约阅读时间需要 3 分钟。
题目:
操作给定的二叉树,将其变换为源二叉树的镜像。
比如: 源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5
二叉树:每个结点的度(子节点的个数)最多为二,且区分左结点和右结点。
二叉树的镜像实际上就是交换每个结点的左右子结点/子树。很容易就能想到递归的思想,但是难在了递归中最简单情况的设置。
刚开始我认为最简单的情况应该是左右结点都是叶节点时,直接交换左右结点,但是这种情况的判别很复杂,尤其是当左右结点的某一个缺失时,总是报错...
无奈翻看讨论区发现,最简单的情况其实是参数为空时,返回None,参数不为空时,递归调用Mirror方法。
# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = None## 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可## # @param pRoot TreeNode类 # @return TreeNode类#class Solution: def isLeaf(self, node): if node.right == None and node.right == None: return True def Mirror(self , pRoot ): # write code here if pRoot == None: return None else: mid = pRoot.left pRoot.left = self.Mirror(pRoot.right) pRoot.right = self.Mirror(mid) return pRoot
转载地址:https://blog.csdn.net/sinat_42437278/article/details/117385262 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年04月15日 18时27分43秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
unity5.x assetbundle打包和加载
2019-04-27
C#用正则表达式去匹配被双引号包起来的中文
2019-04-27
lua table排序
2019-04-27
Unity发布的ios包在iphone上声音是从听筒里出来的问题
2019-04-27
UIScrollView复用节点示例
2019-04-27
Unity 5 AudioMixer
2019-04-27
Unity 代码混淆: CodeGuard的使用
2019-04-27
UGUI 列表循环使用
2019-04-27
使用命令行运行unity并执行某个静态函数(运用于命令行打包和批量打包)
2019-04-27
web.py框架
2019-04-27
web.py学习笔记
2019-04-27
python的代码缩进
2019-04-27
A* Pathfinding Project (Unity A*寻路插件) 使用教程
2019-04-27
bash学习笔记
2019-04-27
sqlite学习
2019-04-27
手把手教你实现Unity与Android的交互
2019-04-27
手把手教你使用Unity的Behavior Designer
2019-04-27
Unity3D摄像机裁剪——NGUI篇
2019-04-27
lua深拷贝一个table
2019-04-27
app运行提示Unable to Initialize Unity Engine
2019-04-27