树的子结构

原创
2016/08/17 10:06
阅读数 60
  • 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
  • 代码如下:
class Solution {
public:
    bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2)
    {
		if(pRoot2 == NULL || pRoot1 == NULL)
           return false;
        if(CheckSubTree(pRoot1, pRoot2))
           return true;
        else
           return HasSubtree(pRoot1->left, pRoot2) || HasSubtree(pRoot1->right, pRoot2);
    }
    
    bool CheckSubTree(TreeNode * pRoot1, TreeNode * pRoot2){
		if(!pRoot2)
            return true;
        if(!pRoot1 || pRoot1->val != pRoot2->val)
            return false;
        return CheckSubTree(pRoot1->left, pRoot2->left) && 
            	CheckSubTree(pRoot1->right, pRoot2->right);
    }
};
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部