剑指Offer(Python多种思路实现):树的子结构
剑指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多种思路实现):树的子结构相关推荐
- 【重点递归】剑指offer——面试题18:树的子结构
剑指offer--面试题18:树的子结构 Solution1: 此题答案是抄的书上的,要记忆并熟练运用关于二叉树的递归思想!!! /* struct TreeNode {int val;struct ...
- 剑指offer:面试题26. 树的子结构
题目:树的子结构 输入两棵二叉树A和B,判断B是不是A的子结构.(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值. 例如: 给定的树 A: 3 / \ ...
- 牛客网(剑指offer) 第十七题 树的子结构
题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) <?php/*class TreeNode{var $val;var $left = NUL ...
- [剑指offer]面试题18:树的子结构
面试题18:树的子结构 题目:输入两棵二叉树A和B,判断B是不是A的子结构.二叉树结点的定义如下: struct BinaryTreeNode {int value;BinaryTreeNode *l ...
- 【剑指Offer题解:java】树的子结构
文章目录 题目 分析 代码 题目 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 分析 先序遍历树 A中的每个节点node1 判断树A中以node1为根节点 ...
- leetcode每日一题--前缀树;前缀哈希;深搜;面试题 08.04. 幂集;648. 单词替换面试题 01.09. 字符串轮转;剑指 Offer II 062. 实现前缀树
leetcode每日一题 ps:今天的每日一题没意思,简单的模拟,自己换一道 面试题 08.04. 幂集 幂集.编写一种方法,返回某集合的所有子集.集合中不包含重复的元素. 说明:解集不能包含重复的子 ...
- 剑指offer python实现_剑指offer系列python实现 日更(三)
今天来讲讲斐波那契数列和它的孩子们~先讲个冷笑话:今天来一盘斐波那契炒饭,它等于昨天的炒饭加上前天的炒饭 7.斐波那契数列 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第 ...
- 牛客网剑指offer(Python版)
剑指offer官网: https://www.nowcoder.com/ta/coding-interviews 写在前面的话 刷剑指offer的时候只需要提交函数核心部分,但是在公司实际笔试时却需 ...
- 剑指offer——python【第54题】字符流中第一个不重复的字符
题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...
最新文章
- Machine Learning week 9 quiz: programming assignment-Anomaly Detection and Recommender Systems
- 用模板元实现50个台阶问题,一次走一步或者两步或者3步,用模板元实现求裴波那契额数列
- java edittext 输入监听_Android应用开发之Android EditText 监听用户输入完成的实例
- Win32ASM-进程学习【2】
- DDL 操作表 删除
- QT获取本机IP,本地IP
- 恢复删除的Exchange邮箱
- java中如何直接导入println()
- 《Linux内核分析》第三周笔记 构造一个简单的Linux系统MenuOS
- spring异常处理器
- 基于jsp+mysql+Spring+SpringMVC+mybatis的ssm学生网上请假系统
- t3软件怎么生成报表_用友t3财务报表生成的步骤和流程
- comsol光学仿真02
- IDEA打包jar包详尽流程
- 【火炉炼AI】机器学习052-OpenCV构建人脸鼻子眼睛检测器
- 计算机学院网络安全学院,网络空间安全学院
- 想裁剪视频时长,用电脑怎么裁剪视频时长
- 系列创业家陈丕宏:互联网创业的五大定律
- CDH框架搭建【小白易上手】
- OpenCV-Python图形图像处理:自用的一些工具函数功能及调用语法介绍