剑指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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:剑指offer-python刷题-包含min函数的栈
下一篇:剑指offer-python刷题-合并两个排序的链表

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月15日 18时27分43秒