剑指offer--面试题18:树的子结构
2016-09-26 14:44
295 查看
python实现:
c++实现:
题目描述
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)python实现:
# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: """ 1.先在pRoot1中找到与pRoot2根节点一样值得节点,找到则转2 2.递归检查除根节点外的其他节点值是否相等 """ def HasSubtree(self, pRoot1, pRoot2): # write code here #采用先序遍历查找pRoot1 if pRoot2 is None: return False result = False if pRoot1: if pRoot1.val==pRoot2.val: result = self.check(pRoot1, pRoot2) #if not result:#这种写法也AC # result = self.HasSubtree(pRoot1.left, pRoot2) or self.HasSubtree(pRoot1.right, pRoot2) if not result: result = self.HasSubtree(pRoot1.left, pRoot2) if not result: result = self.HasSubtree(pRoot1.right, pRoot2) return result def check(self, pRoot1, pRoot2): if pRoot2 is None: return True##############注意:这里是True,而不是False if pRoot1 is None: return False if pRoot1.val==pRoot2.val: return self.check(pRoot1.left, pRoot2.left) and self.check(pRoot1.right, pRoot2.right) return False
c++实现:
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2) { if(pRoot2==NULL) return false; bool result = false; if(pRoot1){ result = check(pRoot1, pRoot2); if(!result) result = HasSubtree(pRoot1->left, pRoot2) || HasSubtree(pRoot1->right, pRoot2); } return result; } bool check(TreeNode* pRoot1, TreeNode* pRoot2){ if(pRoot2==NULL) return true; if(pRoot1==NULL) return false; if(pRoot1->val==pRoot2->val) return check(pRoot1->left, pRoot2->left 4000 ) && check(pRoot1->right, pRoot2->right); return false; } };
相关文章推荐
- 【剑指offer】面试题18:树的子结构
- 剑指Offer--面试题18:数的子结构--Java实现
- 剑指Offer之面试题18:树的子结构
- 【面试题】剑指offer18--判断一个二叉树是否为另一个二叉树的子结构
- 剑指offer——面试题18:树的子结构
- 剑指offer-面试题18.树的子结构
- 剑指Offer面试题18(Java版):树的子结构
- 【剑指Offer学习】【面试题18 :树的子结构】
- 剑指offer面试题18-树的子结构
- 【剑指offer】面试题18:输入两颗二叉树A和B,判断B是不是A的子结构?
- 剑指offer面试题18——树的子结构(递归)
- 剑指offer面试题18-树的子结构
- 剑指offer-面试题18-树的子结构
- 剑指offer-面试题 18:树的子结构
- Iava 剑指offer_面试题18_树的子结构
- 剑指offer之面试题18:树的子结构
- 剑指offer-面试题18-树的子结构
- 剑指offer-面试题18:树的子结构
- 剑指Offer_面试题18_树的子结构
- 剑指offer之面试题18:树的子结构