剑指offer 面试题18 判断二叉树B是否是A的子结构
2014-12-23 16:44
531 查看
struct BinaryTreeNode{ int data; BinaryTreeNode *left; BinaryTreeNode *right; }; //find a A-node that equals B-root,send it to the core func //judge:root--left--right,and recursion bool SubTree(BinaryTreeNode *pRootA,BinaryTreeNode *pRootB){ bool result=false; if(pRootA==NULL||pRootB==NULL) return result; if(pRootA->data==pRootB->data) result=SubTree_core(pRootA,pRootB); //which means rootA->data=rootB->data,but not all nodes if(!result) result=SubTree(pRootA->left,pRootB); if(!result) result=SubTree(pRootA->right,pRootB); return result; } //get 2 trees whose roots are equal //judge whether A-Node always equal B-node till B-null bool SubTree_core(BinaryTreeNode *pRootA,BinaryTreeNode *pRootB){ if(pRootB==NULL) return true; if(pRootA==NULL) return false; if(pRootA->data!=pRootB->data) return false; return SubTree_core(pRootA->left,pRootB->left)&& SubTree_core(pRootA->right,pRootB->right); }
相关文章推荐
- 【面试题】剑指offer18--判断一个二叉树是否为另一个二叉树的子结构
- 【剑指offer】面试题18:输入两颗二叉树A和B,判断B是不是A的子结构?
- 剑指offer-面试题18 判断二叉树B是不是二叉树A的子结构
- 【面试题】剑指Offer-18-判断一颗树是否为另一颗树的子树
- 剑指Offer面试题18树的子结构(递归),面试题19二叉树的镜像(递归和非递归用栈)
- 【面试题】剑指Offer-39-求二叉树的深度和判断一颗树是否为平衡二叉树
- 剑指Offer 面试题28:判断一棵二叉树是否镜对称 Java代码实现
- 剑指offer 面试题39 求二叉树深度|判断是否为平衡二叉树
- 剑指Offer面试题18(Java版):树的子结构
- 剑指offer面试题之判断一颗二叉树是不是平衡二叉树
- 剑指offer面试题39:二叉树深度以及判断平衡二叉树
- 剑指offer:java判断二叉树是否对称
- 剑指offer之面试题18:树的子结构
- 【剑指offer】判断二叉树是否为平衡二叉树
- 剑指offer——面试题39:扩展问题判断一个树是否是平衡二叉树(递归)
- 剑指offer-面试题18:树的子结构
- 【剑指offer】判断二叉树是否平衡(左右子树高度差最多为1)
- 剑指offer-面试题18.树的子结构
- 剑指Offer面试题:18.二叉树的镜像
- 【剑指offer】3.4代码的鲁棒性——面试题18:树的子结构