如何分析python中的对称二叉树
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,如何分析python中的对称二叉树,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。对称二叉树题目给定一个二叉树,检查它是否是镜像对称的
千家信息网最后更新 2025年02月02日如何分析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安全错误
数据库的锁怎样保障安全
老服务器主板坏了咋倒数据
重庆软件开发技术
删除数据库的列
数据库运算举例学生学号
服务器放家里
蓬莱app定制软件开发推荐
steam2k20服务器关了
服务器设置url
服务器开机风扇声音一会大一会小
网络安全征文启事
数据库索引原理是什么
奉贤区直销软件开发流程
类似gen8的服务器
网络技术培训成功举办
浪潮是在哪一年研发的高端服务器
学习数据库设计与应用心得
go kegg数据库
组织网络安全教育征文
数据库的概念和特点
软件测试转软件开发行吗
银行数据库面试题目
新炬网络技术是外包吗
软件开发甩锅
加里索斯服务器
哪个城市好找软件开发工作室
数据库报表方案 mysql
软件开发二级BM是什么
成曜网络技术集团
访问数据库socket
php 数据库 操作