刷题系列 - Python判断是否镜像对称二叉树

发布时间:2020-08-08 13:36:44

来源:ITPUB博客

阅读:104

作者:张国平

继续刷题,判断是否镜像对称二叉树。

镜像对称二叉树,顾名思义,以根节点为轴,左右节点和节点内容互为镜像;如下图所示。这里要避免和完全二叉树混淆。

这个我还是考虑了一段时间,递归和迭代都可以实现。递归的,如果一个节点值作为输入很难实现,所以新建一个新方法recurse,输入左右两个节点,返回bool值。思路很简单,如果输入两个节点都是空,可能是单个跟节点,返回True;如果一个有,另一个为空,返回False;如果左右两个节点,如果节点值相等,这里递归,把这两个节点的子节点左右对比,并按照and 关联,如果有一个下层对比False,则所有都是False。如果都为True,则层层返回True。

递归的核心点,就是定义传入下一次递归输入,和如何处理下一次递归的返回。

# Definition for a binary tree node.

# class TreeNode:

#     def __init__(self, x):

#         self.val = x

#         self.left = None

#         self.right = None

class Solution:

def isSymmetric(self, root: TreeNode) -> bool:

if root== None:

return True

else:

return recurse(root.left,root.right)

def recurse(leftNode,rightNode):

if leftNode == None and rightNode == None:

return True

elif leftNode != None and rightNode != None:

if leftNode.val ==rightNode.val:

return recurse(leftNode.left,rightNode.right) and recurse(leftNode.right,rightNode.left)

else:

return False

else:

return False

python判断整数是否对称_刷题系列 - Python判断是否镜像对称二叉树相关推荐

  1. leetcode力扣刷题系列python——2、两数相加

    题目: 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表示 ...

  2. 后序遍历的非递归算法python_刷题系列 - Python用非递归实现二叉树后续遍历

    顺便把Python用非递归实现二叉树后续遍历也写了. 其实前序中序和后续都是针对父节点说的.比如下面这个最简单二叉树. 前序就是ABC,父节点A在前 中序就是BAC,父节点A在中间 后序就是BCA,父 ...

  3. C语言刷题系列——12.判断回文字符串

  4. 蓝桥杯官网刷题记录python

    蓝桥杯官网刷题记录python 由于很多题都会在2020.2021.2022年省赛出现,有的在前面文章里做过的这里就不会再说了 一.空间 小蓝准备用 256MB 的内存空间开一个数组,数组的每个元素都 ...

  5. 算法刷题系列(四)蓝桥杯python算法训练3(下)

    上一次的节点选择算法由于春节过年耽搁了,现在重新补上 上篇链接:算法刷题系列(四)蓝桥杯python算法训练3 - 经验教训 在纷繁复杂的使用了列表来暂存数据之后,发现其实可以利用笔者自己不太常用的字 ...

  6. python画图、python小游戏、python刷题、python算法、python编程与数学

    python画图系列整理 python画图系列整理-CSDN博客 python游戏入门书籍推荐 python游戏入门书籍推荐_pygame书籍推荐_dllglvzhenfeng的博客-CSDN博客 p ...

  7. python必刷面试_Python面试必刷题系列(5)

    本篇是[Python面试必刷题系列]的第5篇文章.通过收集.整理Python真实面试题,给大家讲解面试中的python高频考察点,希望能够引起读者的足够重视. 往期回顾: Python中 is 和 = ...

  8. 洛谷、牛客网、AcWing 刷题(python版)

    牛客网python专项练习整理(一) https://blog.csdn.net/weixin_41913008/article/details/87203468 牛客网剑指offer--python ...

  9. 【Shell牛客刷题系列】SHELL5 打印空行的行号:一起学习grep命令搭配正则表达式的使用

    该系列是基于牛客Shell题库,针对具体题目进行查漏补缺,学习相应的命令. 刷题链接:牛客题霸-Shell篇. 该系列文章都放到专栏下,专栏链接为:<专栏:Linux>.欢迎关注专栏~ 本 ...

  10. 【244天】我爱刷题系列(3)

    叨叨两句 未来我爱刷题系列将与跃迁之路系列绑定,同步更新,即每天我都将运用跃迁之路的方法进行刻意练习. 总结套路,用乘法思路跃迁. 题8:编写程序把这些IP按数值大小,从小到大排序并打印出来 编写程序 ...

最新文章

  1. 基于Spark的大规模推荐系统特征工程
  2. MATLAB GUI界面显示不全的解决办法
  3. 分割2021PanopticFCN
  4. Android 开源之StickyHeaderListView 标题渐变、吸附悬停、筛选分类、动态头部
  5. 精确记算程序的运行时间或者某段代码的运行时间
  6. HTTP面试题都在这里
  7. word置顶_小鱼便签怎么设置置顶
  8. UVA1493 - Draw a Mess(并查集)
  9. 16进制可逆加密算法
  10. [Redux/Mobx] Redux怎样重置状态?
  11. jQuery中each()的用法
  12. StringBuilder和Char[]在平台调用中的差异
  13. 加密芯片SPI通讯的调试
  14. android gps测速算法,GPS定位与测速算法研究
  15. Freeswitch的Proxy(代理转发)模式和Bypass(旁路)模式的正确配置
  16. 一份Slide两张表格带你快速了解目标检测
  17. linux 命令 tr 详解
  18. 《东周列国志》第七十九回 归女乐黎弥阻孔子 栖会稽文种通宰嚭
  19. PostgreSQL助力小微企业管理系统变革
  20. p5js动漫角色临摹

热门文章

  1. 用c#创建支持多语言的WinForm应用程序 .
  2. 为域用户创建漫游用户配置文件
  3. 总结:MySQL备份与恢复的三种方法
  4. LeetCode_14_python_最长公共前缀
  5. php 不通过表单post,php – 简单表单不通过_POST发送数据
  6. virtuozo空三加密_VirtuoZoAAT空三加密中的应用技巧
  7. elk日志分析系统_ELK 日志分析系统
  8. java 如何去掉http debug日志_Java高手如何搭建高效易用的日志系统
  9. 正点原子 潘多拉stlink驱动_「正点原子Linux连载」第五十六章Linux自带的LED灯驱动实验...
  10. vue-cli 做前端+ nodejs做服务端的 IIS部署