LeetCode如何判断树的子结构
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下LeetCode如何实现树的子结构,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!题目描述输入两棵二叉树
千家信息网最后更新 2026年11月01日LeetCode如何判断树的子结构
小编给大家分享一下LeetCode如何实现树的子结构,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
题目描述
输入两棵二叉树 A 和 B,判断 B 是不是 A 的子结构。(约定空树不是任意一个树的子结构)
B 是 A 的子结构, 即 A 中有出现和 B 相同的结构和节点值。
例如: 给定的树 A:
3
/ \
4 5
/ \
1 2
给定的树 B:
4
/
1
返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。
0 <= 节点个数 <= 10000
题目样例
示例 1
输入
A = [1,2,3], B = [3,1]
输出
false
示例 2
输入
A = [3,4,5,1,2], B = [4,1]
输出
true
题目思考
子结构有哪些性质?
解决方案
思路
分析题目, B 是 A 的子结构的话, 那么 B 的节点结构需要完全是 A 的某一部分, 而且该部分中的一部分子树可以不在 B 中(例如题目中 A 的 2 号节点就不在 B 中) 所以我们可以额外定义一个方法, 来递归比较当前 A 和 B 节点是否满足子结构关系 然后从 A 和 B 的根节点开始调用该方法, 如果当前满足条件就直接返回 true, 否则就将 A 移动到其左右子节点位置, 重新与 B 的根节点比较即可 下面代码中有详细的注释, 方便大家理解
复杂度
时间复杂度 O(MN)假设 A 和 B 的节点数目分别是 M 和 N, 那么最差情况是对于每个 A 节点, 都要调用一次 match 方法遍历整个 B 树, 所以时间复杂度是 O(MN)空间复杂度 O(M)isSubStructure 递归调用则最多使用 O(M)递归栈空间, match 递归调用使用O(min(M, N))递归栈空间, 所以整体空间复杂度为O(M)
代码
class Solution:
def isSubStructure(self, A: TreeNode, B: TreeNode) -> bool:
if not A or not B:
# 根据题意, B如果是空树一定不满足条件, 而A是空树的话B更不可能是其子结构了
return False
def match(a, b):
if not b:
# 因为A的子树部分可以有部分节点是B没有的, 所以如果当前b节点是空的话是满足条件的情况, 直接返回true
return True
if not a:
# 此时b节点还有值, 但a节点是空了, B不可能是A的子结构
return False
# 既要当前a和b的值相等, 同时各自左右子树部分也要匹配
return a.val == b.val and match(a.left, b.left) and match(
a.right, b.right)
# B是A的子结构的充要条件: 要么当前A和B匹配, 要么A的左右子节点和B匹配
return match(A, B) or self.isSubStructure(
A.left, B) or self.isSubStructure(A.right, B)以上是"LeetCode如何实现树的子结构"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
节点
子结构
复杂
复杂度
题目
递归
空间
部分
子树
方法
条件
篇文章
结构
输入
相同
代码
内容
情况
时间
示例
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
朗新科技与工业互联网
关于新基建和互联网科技
互联网科技公司电话
朗涯互联网科技
广州互联网络科技有限公司
天津摩尔互联网科技
互联网金融 科技创新
青海省互联网新科技
华中科技有哪些互联网大佬
隆华科技工业互联网
互联网科技中介
互联网科技与管理
本届互联网博览会上的黑科技
科技类公司包括互联网吗
沐思想互联网科技有限公司
半导体是互联网高科技吗
抖集互联网科技技术咨询
兰石爱特工业互联网科技分公司
广州三三互联网科技有限公司
六子台科技互联网展会
瑰夏咖啡
互联网科技公司经营范围
工业互联网科技新基建
赫美联合互联网科技
互联网 视角下的科技创新
以后互联网后是啥科技
千方科技属于互联网企业吗
张家口科技产业互联网平台
青岛易易互联网科技
互联网科技大会大佬