如何分析python中的对称二叉树
发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,如何分析python中的对称二叉树,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。对称二叉树题目给定一个二叉树,检查它是否是镜像对称的
千家信息网最后更新 2024年11月22日如何分析python中的对称二叉树
如何分析python中的对称二叉树,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
对称二叉树
题目
给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
1
/ \
2 2
/ \ / \
3 4 4 3
但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
1
/ \
2 2
\ \
3 3
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/symmetric-tree/submissions/
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def isSymmetric(self, root):
"""
:type root: TreeNode
:rtype: bool
"""
错误代码
判断二叉树是否对称,先看看下面代码是否正确,它实现的什么功能?
首先看递归基,分三种情况:
没有根,就是空树,返回True 没有左右子树,返回True 左右子节点 val
不相等,返回False
递归方程如下,判断左、右子树都对称。
self.isSymmetric(root.left) and self.isSymmetric(root.right)
def isSymmetric(self, root):
"""
:type root: TreeNode
:rtype: bool
"""
if not root:
return True
if not root.left and not root.right:
return True
return root.left == root.right and self.isSymmetric(root.left) and self.isSymmetric(root.right)
以上代码认为下面的二叉树才是对称的:
这与题目要求的对称二叉树明显不同,这样才是真的对称二叉树:
正确代码
错误代码错误的原因在于递归方程有问题。请看下图:
因此,得到正确的递归方程:
sub(left.left,right.right) and sub(left.right,right.left)
完整代码:
class Solution(object):
def isSymmetric(self, root):
if not root:
return True
def sub(left,right):
# 没有左和右,返回True
if not left and not right:
return True
# 没有左或没有右,返回False
if not left or not right:
return False
return left.val == right.val and sub(left.left,right.right) and sub(left.right,right.left)
return sub(root.left,root.right)
关于如何分析python中的对称二叉树问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
对称
代码
问题
递归
分析
方程
错误
更多
镜像
题目
子树
帮助
解答
不同
易行
简单易行
下图
内容
功能
原因
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
http3.0 服务器开发
网络安全叠加区块链
手机上怎么远程连接云服务器
47寸上下双屏广告机软件开发
软件开发网优选湖南岚鸿c
自建远程数据库
网络安全教育手抄报的字怎么写
戴尔服务器背面亮黄灯
网络安全管理基本知识竞赛
软件开发过程模型分为哪几种
蒂森克虏伯电梯服务器
服务器 sata
note3 无服务器
软件开发完毕入什么科目
用什么软件开发ipa
生活中数据库领域的新技术
微服务软件开发成本
互联网对科技产业政策
wince c 数据库
密码编码与网络安全第五版
西继迅达服务器怎么进去调试模式
登入app显示服务器连接失败
攻击传奇私服服务器
安徽交通软件开发费用
画饭圈乱象 绘网络安全绘画简单
洪洞云启网络技术有限公司
亦乐软件开发工作室
学海导航软件开发
数据仓库是数据最大的数据库
服务器版和桌面