算法题/数的子结构
来源:互联网 发布:c语言基础书籍推荐 编辑:程序博客网 时间:2024/06/05 20:20
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
这里要注意的是,题目是判断子结构,而不是判断子树(当然子树也是子结构,但不是所有的子结构都是子树),因此,首先要做的判断应该是从A,B两棵树的根节点开始,这里利用递归的思想(若一对节点相等,则递归的判断这对节点的左右子树是不是分别相等,若一直相等,则总会先遍历完一棵树,若这棵树为B,则B为A的子结构成立,若为A,则A为B的子结构,故不成立),而后再递归的判断B是不是A得左子树或右子树的子结构
#coding:utf-8class TreeNode: def __init__(self,x): self.val = x self.left = None self.right = Noneclass Solution: #判断连个数是否具有相同的子结构 def HasSubtree(self,pRoot1,pRoot2): if not pRoot1 or not pRoot2: return False else: #从根节点,左子书,右子树比较 return self.isSubtreefromRoot(pRoot1,pRoot2) or self.HasSubtree(pRoot1.left,pRoot2) or self.HasSubtree(pRoot1.right,pRoot2) def isSubtreefromRoot(self,tree1,tree2): #如果tree2结束,说明匹配到相应的子结构 if not tree2: return True #如果tree1结束,说明没匹配到相应的子结构 if not tree1: return False if tree1.val == tree2.val: #判断根节点,左子树,右子树是否相同 return self.isSubtreefromRoot(tree1.left,tree2.left) and self.isSubtreefromRoot(tree1.right,tree2.right) else: return Falseif __name__ == '__main__': root = TreeNode(0) node1 = TreeNode(1) node2 = TreeNode(2) node3 = TreeNode(3) node4 = TreeNode(4) node5 = TreeNode(5) node6 = TreeNode(6) root.left = node1 root.right = node2 root.left.left = node3 root.left.right = node4 root.right.left = node5 root.right.right = node6 root1 = TreeNode(0) node1 = TreeNode(1) node2 = TreeNode(2) root1.left = node1 root1.right = node2 s = Solution() print(s.HasSubtree(root,root1))
python find函数
返回b字符串在a字符串的索引开始位置,不存在返回-1
阅读全文
0 0
- 算法题/数的子结构
- 数的子结构
- 数的子结构
- Q18:数的子结构
- 18、数的子结构
- 树——数的子结构
- 剑指offer-算法题练习:part19 树的子结构
- 每天一道算法题——树的子结构
- [算法学习]树的子结构
- 算法题目-树的子结构
- 算法题目---树的子结构
- 算法复习:树的子结构
- 树------判断数A为数B的子结构
- 剑指offer(十七)数的子结构
- 剑指Offer算法实现之十八:树的子结构
- 面试算法(十七)树的子结构
- 计算二叉树中叶子结点数的算法
- 求二叉树中叶子数的算法
- 数据结构第三周项目2-- 建设“顺序表”算法库
- 数据库基础知识(二)数据库分表技术
- 操作系统5
- android 机器码获取/ 品牌获取 / 型号获取
- angular js的路由和传参
- 算法题/数的子结构
- 最精要解释,助你快速区分和记住encodeURI和encodeURIComponent
- 欢迎使用CSDN-markdown编辑器
- 机器学习算法描述目录
- eclipse+Tomcat+ssm配置一个简单web项目
- Hdu 6212 Zuma 区间DP
- Java中hashCode的作用(就好比菜篮子)
- (二)hadoop源码学习之Configuration
- python的urllib2和beautifulsoup编写爬虫