牛客

【思路】

  1. 我们首先判断特殊情况,当根节点为空,我们可以直接返回True,这时候是对称的
  • 不为空的时候,只要我们重新定义一个函数 restruct,判断左右子树,

  • 当两个子树为空的时候,直接返回True,这时候肯定是对称的

  1. 再判断返回False的情况:两个子树有一个为空就要返回False,当然左右子树的值不相等也要返回False

  2. 接下来,我们利用递归的思想,将左子树的左边和右子树的右边做为函数的输入,进行判断,不断递归,同理将左子树的右边右子树的左边作为输出同时返回结果

# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:def isSymmetrical(self, pRoot):# write code hereif not pRoot:return Truereturn self.restruct(pRoot.left, pRoot.right)# 左子树的左节点与右子树的右节点相等,# 左子树的右节点与右子树的左节点相等def restruct(self,A,B):if not A and not B:return Trueif not A or not B or A.val != B.val:return Falseif A.val == B.val:return self.restruct(A.left,B.right) and self.restruct(A.right,B.left)return False

https://cuijiahua.com/blog/2018/01/basis_58.html
https://www.cnblogs.com/cong3Z/p/12939870.html

(python版)《剑指Offer》JZ58:对称的二叉树相关推荐

  1. 《LeetCode力扣练习》剑指 Offer 28. 对称的二叉树 Java

    <LeetCode力扣练习>剑指 Offer 28. 对称的二叉树 Java 一.资源 题目: 请实现一个函数,用来判断一棵二叉树是不是对称的.如果一棵二叉树和它的镜像一样,那么它是对称的 ...

  2. LeetCode Algorithm 剑指 Offer 28. 对称的二叉树

    剑指 Offer 28. 对称的二叉树 Ideas 一开始想的有问题,看了例子以为对称二叉树的中序遍历序列是回文数组,然后就用这么写了,结果到第192个测试用例[1,2,2,2,null,2]就失败了 ...

  3. 【LeetCode】剑指 Offer 28. 对称的二叉树

    [LeetCode]剑指 Offer 28. 对称的二叉树 文章目录 [LeetCode]剑指 Offer 28. 对称的二叉树 一.递归 一.递归 对称二叉树定义:对于书中任意两个对称结点 L 和 ...

  4. 剑指 Offer 28. 对称的二叉树 -- 递归

    0 题目描述 leetcode原题链接:剑指 Offer 28. 对称的二叉树 1 递归解法 对称二叉树定义: 对于树中 任意两个对称节点 LLL 和 R,R,R, 一定有: L.val=R.val: ...

  5. 【Java】 剑指offer(28) 对称的二叉树

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 请实现一个函数,用来判断一棵二叉树是不是对称的.如果一棵二叉树和它 ...

  6. 剑指offer:对称的二叉树(镜像,递归,非递归DFS栈+BFS队列)

    1. 题目描述 /**请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的 */ 2. 递归 思路: /**1.只要pRoot.left和pRo ...

  7. 剑指offer:对称的二叉树

    题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 解题 递归做法 /* struct TreeNode {int val;str ...

  8. 剑指 Offer 28. 对称的二叉树【无取巧,易于理解!】

    看题解时,很多大牛用很少的代码就完成了AC,但可能看了很多遍也看不懂,因此萌生了写一种最"笨"最完整的代码的想法,这样大家可以通过我的代码入门,看懂了再去挑战大牛们的简洁解法. 请 ...

  9. 剑指offer之对称的二叉树

    题目简介 请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 解题思路 注意一个点,对称要求对应的值也是相等的. 给出对称二叉树的定义: 空 ...

  10. LeetCode-剑指 Offer 28. 对称的二叉树

    剑指 Offer 28. 对称的二叉树 对称二叉树定义:对于树中任意两个对称节点L和R,一定有: L.val == R.val:这两个对称节点值相等 L.left.val == R.right.val ...

最新文章

  1. eclipse 新建maven项目报错Could not resolve archetype org.apache.maven.archetype修改配置
  2. java把信息存到文件里,Java 如何将字符串信息直接写保存到文本文件?
  3. WebLogic常见问题
  4. python教程苹果版_python教程
  5. 数据可视化历史上的“人肉里程碑”
  6. OllyDbg 常用命令 【Pray收集整理】
  7. 美国计算机硕士要读多久,去美国读研究生需要多久 各专业时长一览
  8. [高项]消极风险VS积极风险
  9. 基于SpringBoot的分销商城的设计与实现(论文+源码)_kaic
  10. 【研0需要知道的那些事01】如何判断期刊是否为核心期刊,知网导出参考文献越来越多怎么办?
  11. linux内核panic
  12. 随机生成一个质数的python代码_python3 随机数 质数 素数 文件操作
  13. 阿里最受追捧的「中高级技术核心」,助我拿下菜网offer,附面经
  14. 探寻51个大数据应用案例背后的故事
  15. 一行python代码画粑粑_如何阅读《JavaScript高级程序设计》(一)
  16. 孤独源于过分的优越感,而优越感的另一面,则是自卑
  17. 使用docker跑通tasn-mxnet代码
  18. java管理系统界面_java编程实现一个学生信息管理系统的图形界面
  19. 网络安全学习记录-8
  20. java 判断字符串是否为英文

热门文章

  1. word中批量调整图片大小的方法
  2. 线性表、栈和队列的相同点和不同点
  3. 批处理命令——bat文件创建和基本命令语法
  4. macOS Mojave 夜神模拟器打不开解决办法
  5. ----uni-app之APP关联小程序实现扫描APP二维码跳转关联小程序----
  6. python调用m文件
  7. 如何把EXCEL 中的表格复制到WORD 中后不显示网格线?
  8. 吉他php怎么弹,吉他弹奏技巧(一看就会)
  9. C语言中file文件指针概念及其操作 (转载)
  10. maccms-cve_2017_17733漏洞复现