《剑指offer》【树的子结构】(python版)
题目描述:
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
思路:
本题可以分为两步,第一步:找到A中与B的根结点值相等的结点R,第二步:判断以R为根结点的子树是否包含B一样的结构。本题思路不难,但是需要格外注意对指针空值的判断。
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:def HasSubtree(self, pRoot1, pRoot2):# write code hereresult = Falseif pRoot1 and pRoot2:if pRoot1.val == pRoot2.val:result = self.iseuqual(pRoot1, pRoot2)# 判断左子树中是否包含B树结构if not result:result = self.HasSubtree(pRoot1.left, pRoot2)# 判断右子树中是否包含B树结构if not result:result = self.HasSubtree(pRoot1.right, pRoot2)return resultdef iseuqual(self, root1, root2):# 如果B树为空,那么可以算B是A的子结构if not root2:return True# 如果A树空,而B树不空,那么B不是A的子结构if not root1:return Falseif root1.val != root2.val:return False# 根节点值相同,在判断左右子树是否都相同return self.iseuqual(root1.left, root2.left) and self.iseuqual(root1.right, root2.right)
《剑指offer》【树的子结构】(python版)相关推荐
- 剑指 offer 树的子结构
子树和子结构的区别 这棵大树的子树有: 4 和 5 对应的两棵子树 3 本身自己完整的一棵树 而里面的小框圈出来的不是 3 这棵大树的子树! 还是上面那张图,子结构就是不用那么严格,图中的小框就是整棵 ...
- 剑指offer全套题解:Python版
1. 二叉树的镜像 class Solution:def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:if ...
- 剑指offer 树的子结构
题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 解决方案: /** public class TreeNode {int val = 0;Tree ...
- 剑指offer——树的子结构
Q:输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) A:要查找树A中是否存在和树B结构一样的子树.我们可以分为两步: 第一步在树A中找到和B的根节点一样的值 ...
- 剑指offer:跳台阶 python 实现
题目 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 解题思路 草稿上想了想,这道题跟剑指offer: 斐波那契数列 ...
- 剑指Offer_17_树的子结构
题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 解题思路 首先判断 A 和 B 是否是空,如果为空,返回false:否则找到 A 和 B 的根结点 ...
- 【LeetCode笔记】剑指 Offer 26-. 树的子结构 (Java、双重dfs、二刷)
文章目录 题目描述 思路 & 代码 二刷 题目描述 思路很值得看的一道题,和之前路径总和 III的双递归思路.结构很像 思路 & 代码 isSubStructrue() 进行一个前序的 ...
- 《剑指 Offer》(第 2 版) 题解(Python 语言实现)第 41-50 题
文章目录 @[toc] 第 41 题:数据流中的中位数 第 42 题:连续子数组的最大和 第 44 题:数字序列中某一位的数字 同 LeetCode 第 400 题:[400. 第 N 个数字](ht ...
- 2021-06-28剑指offer26.树的子结构
自顶向下遍历,自底向上返回. 先逐层比较,然后再传递,相当于前序遍历的模板 由于只要有一个true都可能为true,所以在比较返回的过程中全部为或的关系. 什么时候应该返回呢? 1)在遍历的过程中,当 ...
- DayN剑指offer树基础
//树的前序中序后续递归非递归+层序+按照每层节点输出 package baselearning.tree;import java.util.*;class TreeNode {String val; ...
最新文章
- 图片和文件上传的两款插件
- 【java】异常的分类
- C++ Primer 5th笔记(chap 19 特殊工具与技术)malloc 函数与 free 函数
- c语言 执行free函数程序被卡住,FreeRTOS操作系统,在按键中断函数中恢复被挂起的任务,程序卡死的原因和解决办法...
- 【浅谈DOM事件的优化】
- 【CCF】201712-2游戏
- 资源分享 | 知识蒸馏总结、应用与扩展(2015-2019)
- 菜鸟学了SpringBoot后,撸了个博客项目(大神跳过哈)
- 【转】软件开发常用术语
- 中科方德桌面操作系统_兆芯CPU与中科方德新版桌面/服务器操作系统完成互认证...
- 拼接sql语句参数绑定
- 腾讯这次组织变革是过渡的
- vmware ubuntu server(服务器) 屏幕显示不全
- linuxping百度未知的名称或服务_有赞怎么打通百度小程序?开通有什么好处?
- Frida Hook Android App 进阶用法之 Java 运行时
- centos查看端口占用情况
- 什么是文件包含漏洞?文件包含漏洞分类!
- 有关tomcat的安装与配置问题
- OWASP A2 Cryptographic Failures(加密机制失效)
- 大学计算机高数如何学,计算机科学系如何学好大学数学,即高数,老师上课听不太懂,急啊,数列的极限就不怎么懂,跪求高人指点...
热门文章
- majordomo邮件列表快速安装指南
- signature=45daf61b5b0148091099c19a080e3802,CSR文件和P10文件
- c语言编写一个火车票,火车票完整系统(C语言)【报告版带截图】.doc
- dm365的LCD显示
- Hadoop+Hbase+Springboot实现企业能源消耗监测大数据分析系统
- 【图像识别】训练一个最最简单的AI使其识别Vtuber
- VS Code 设置缩进为4个空格
- Win8系统优化,享受飞一般的感觉!
- 21计算机考研时间,湖北2020计算机考研初试成绩公布时间2月21日起
- m.soudashi.cn 地图_上海网站推广的最有效方法