剑指offer第17题(树的子结构)
来源:互联网 发布:辅导软件 编辑:程序博客网 时间:2024/06/05 03:10
题目:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
思想:现根据在树A中查找与根节点的值一样的节点R。紧接着判断树A中以节点R为根节点的子树和树b是不是具有相同的结构。
java代码:
/** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */public class Solution { public boolean HasSubtree(TreeNode root1,TreeNode root2) { boolean result=false; if(root1!=null && root2!=null) { if (root1.val == root2.val) { result = HasNextTree(root1, root2); } if (!result) { result = HasSubtree(root1.left, root2); } if (!result) { result = HasSubtree(root1.right, root2); } } return result; } public boolean HasNextTree(TreeNode root1,TreeNode root2){ if(root1==null&& root2!=null){ return false; } if(root2==null){ return true; } if(root1.val!=root2.val){ return false; } return HasNextTree(root1.left,root2.left) && HasNextTree(root1.right,root2.right); }}python代码:
class Solution: def HasSubtree(self, pRoot1, pRoot2): # write code here result = False if pRoot1 and pRoot2: if pRoot1.val == pRoot2.val: result = self.IsSubtree(pRoot1, pRoot2) if not result: result = self.HasSubtree(pRoot1.left, pRoot2) if not result: result = self.HasSubtree(pRoot1.right, pRoot2) return result def IsSubtree(self, pRoot1, pRoot2): if not pRoot2: return True if not pRoot1: return False if pRoot1.val != pRoot2.val: return False return self.IsSubtree(pRoot1.left, pRoot2.left) and self.IsSubtree(pRoot1.right, pRoot2.right)
阅读全文
0 0
- 剑指offer第17题(树的子结构)
- 树的子结构 (剑指Offer 第 16 题)
- 剑指offer--17树的子结构
- 剑指offer 17 树的子结构
- 剑指Offer——(17)树的子结构
- 【剑指offer-解题系列(17)】树的子结构
- 剑指offer:判断树的子结构
- 【剑指offer】树的子结构
- 【剑指offer】Q18:树的子结构
- 剑指offer--树的子结构
- 剑指Offer之 - 树的子结构
- 剑指offer 18 - 树的子结构
- 剑指Offer-树的子结构
- 剑指offer之树的子结构
- 《剑指offer》树的子结构
- 剑指offer—树的子结构
- 剑指Offer-18-树的子结构
- 剑指offer:树的子结构
- 微信“15。。。。。”背后的故事
- 【设计模式】工厂模式——创建对象的最佳方式
- electron 下载文件功能
- hdu 1014 最大公约数
- 爬虫学习笔记--爬取百度贴吧
- 剑指offer第17题(树的子结构)
- 第八章 Android开发规范整理以及Strings.xml定义规范化
- java-web项目的分页与联合模糊查询(不使用分页框架)
- 知识点摘要
- 内轮差编辑内轮差
- PHP中图片上传
- AndroidStudio上传项目到Bintray jCenter
- Cocos Creator Tiledmap——入门知识整理
- 关于浏览器主页被hao123等页面篡改的解决方法