剑指Offer(Python多种思路实现):树的子结构

面试26题:

题目:树的子结构

题:输入两棵二叉树A和B,判断B是不是A的子结构。

解题思路一:递归,注意空指针的情况。

class Solution:def HasSubtree(self, pRoot1, pRoot2):# write code hereres=Falseif pRoot1 and pRoot2:if pRoot1.val==pRoot2.val:res=self.SubtreeCore(pRoot1,pRoot2)if not res:res=self.HasSubtree(pRoot1.left,pRoot2)if not res:res=self.HasSubtree(pRoot1.right,pRoot2)return resdef SubtreeCore(self,pRoot1,pRoot2):if pRoot2==None:return Trueif pRoot1==None:return Falseif pRoot1.val!=pRoot2.val:return Falsereturn self.SubtreeCore(pRoot1.left,pRoot2.left) and self.SubtreeCore(pRoot1.right,pRoot2.right)

解题思路二:

def is_subtree(s: 'TreeNode', t: 'TreeNode') -> 'bool':def is_same(s, t):if s and t:equal = s.val==t.valif not t.left and not t.right:return equalelse:return (equal and is_same(s.left, t.left) andis_same(s.right, t.right))else:return s is tstack = s and [s]while stack:node = stack.pop()if node:res = is_same(node, t)if res:return Truestack.append(node.right)stack.append(node.left)return False

剑指Offer(Python多种思路实现):树的子结构相关推荐

  1. 【重点递归】剑指offer——面试题18:树的子结构

    剑指offer--面试题18:树的子结构 Solution1: 此题答案是抄的书上的,要记忆并熟练运用关于二叉树的递归思想!!! /* struct TreeNode {int val;struct ...

  2. 剑指offer:面试题26. 树的子结构

    题目:树的子结构 输入两棵二叉树A和B,判断B是不是A的子结构.(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值. 例如: 给定的树 A: 3     / \ ...

  3. 牛客网(剑指offer) 第十七题 树的子结构

    题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) <?php/*class TreeNode{var $val;var $left = NUL ...

  4. [剑指offer]面试题18:树的子结构

    面试题18:树的子结构 题目:输入两棵二叉树A和B,判断B是不是A的子结构.二叉树结点的定义如下: struct BinaryTreeNode {int value;BinaryTreeNode *l ...

  5. 【剑指Offer题解:java】树的子结构

    文章目录 题目 分析 代码 题目 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 分析 先序遍历树 A中的每个节点node1 判断树A中以node1为根节点 ...

  6. leetcode每日一题--前缀树;前缀哈希;深搜;面试题 08.04. 幂集;648. 单词替换面试题 01.09. 字符串轮转;剑指 Offer II 062. 实现前缀树

    leetcode每日一题 ps:今天的每日一题没意思,简单的模拟,自己换一道 面试题 08.04. 幂集 幂集.编写一种方法,返回某集合的所有子集.集合中不包含重复的元素. 说明:解集不能包含重复的子 ...

  7. 剑指offer python实现_剑指offer系列python实现 日更(三)

    今天来讲讲斐波那契数列和它的孩子们~先讲个冷笑话:今天来一盘斐波那契炒饭,它等于昨天的炒饭加上前天的炒饭 ‍ 7.斐波那契数列 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第 ...

  8. 牛客网剑指offer(Python版)

    剑指offer官网:  https://www.nowcoder.com/ta/coding-interviews 写在前面的话 刷剑指offer的时候只需要提交函数核心部分,但是在公司实际笔试时却需 ...

  9. 剑指offer——python【第54题】字符流中第一个不重复的字符

    题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...

最新文章

  1. Machine Learning week 9 quiz: programming assignment-Anomaly Detection and Recommender Systems
  2. 用模板元实现50个台阶问题,一次走一步或者两步或者3步,用模板元实现求裴波那契额数列
  3. java edittext 输入监听_Android应用开发之Android EditText 监听用户输入完成的实例
  4. Win32ASM-进程学习【2】
  5. DDL 操作表 删除
  6. QT获取本机IP,本地IP
  7. 恢复删除的Exchange邮箱
  8. java中如何直接导入println()
  9. 《Linux内核分析》第三周笔记 构造一个简单的Linux系统MenuOS
  10. spring异常处理器
  11. 基于jsp+mysql+Spring+SpringMVC+mybatis的ssm学生网上请假系统
  12. t3软件怎么生成报表_用友t3财务报表生成的步骤和流程
  13. comsol光学仿真02
  14. IDEA打包jar包详尽流程
  15. 【火炉炼AI】机器学习052-OpenCV构建人脸鼻子眼睛检测器
  16. 计算机学院网络安全学院,网络空间安全学院
  17. 想裁剪视频时长,用电脑怎么裁剪视频时长
  18. 系列创业家陈丕宏:互联网创业的五大定律
  19. CDH框架搭建【小白易上手】
  20. OpenCV-Python图形图像处理:自用的一些工具函数功能及调用语法介绍

热门文章

  1. 2023 年用于 Python 移动应用程序开发的流行工具
  2. C#实现的系统内存清理工具
  3. 解决火车头采集器无法采集HTTPS的办法
  4. 数据恢复软件EasyRecovery帮你解决设备受限的烦恼
  5. 建行u盾弹不出来_关于建设银行网银的问题```
  6. python先进先出Queue
  7. 基于全志A33开发板linux系统移植学习记录(Boot0)
  8. NLP——斯坦福分词工具简单使用
  9. android脸萌3
  10. 华硕fl8000u是什么型号_华硕FL8000U笔记本