剑指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. 让我去健身的不是漂亮小姐姐,居然是贝叶斯统计!
  2. 这是我读过写得最好的【秒杀系统架构】分析与实战!
  3. C语言char*s 4,求讲解几道C语言的题 52 声明语句为“char s[4][15],*p1,**p2;int x,*y;”,下列语句中正...
  4. 深度解析dba_segments和sys.seg$中的细节差异(下)
  5. mysql按章_mysql按时间范围分区
  6. 5月16 JSON的一些知识点及AJAX的应用
  7. 关于archlinux下的ralink5370网卡
  8. javascript内存泄漏调试工具mac_node.js 内存泄漏的秘密
  9. foo bar的意思
  10. 自己动手一步步安装Linux系统
  11. libreelec投屏_低配置主机安装Kodi操作系统 - LibreELEC
  12. ddns动态域名注册
  13. 数据结构之算法——递归
  14. 关于ssm框架的外文文献及译文_学术小白应该如何高效阅读文献?
  15. 基于BK蓝牙RW-BLE协议栈调度逻辑梳理
  16. spring boot rest例子
  17. QLabel的四种显示方式
  18. DXperience皮肤设置 C#第三方控件学习笔记
  19. proble tip
  20. 读《应试教育的死穴,恰在于堵死了孩子“犯错”的空间》有感

热门文章

  1. 03pe修改计算机名称,[U盘PE教程]玩转PE内置注册表(基于NT6.0)
  2. 如何使用Photoshop批量扫描保存文档
  3. 看不懂NFT,了解这几幅画就好了
  4. k米评分容易得高分的歌_下线“交友陪玩”!全民K歌回应涉黄被罚:上月已完成整改,强化审核...
  5. 币圈名词解释之对冲搬砖
  6. 数据分析04-朴素贝叶斯
  7. lotus收到的外部邮件是html语言,46. Lotus Notes中编程发送邮件(一)
  8. tf.keras.layers.MaxPooling2D
  9. Mysql学习宝典(二) -- 从更新语句执行流程引出的Mysql各种日志
  10. linux执行系统命令卡死问题解决