美文网首页
树的子结构

树的子结构

作者: Crazy_Bear | 来源:发表于2020-07-29 10:31 被阅读0次
    • 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
    • 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(pRoot1 == nullptr || pRoot2 == nullptr){
                return false;
            }
            return (judge(pRoot1,pRoot2)||HasSubtree(pRoot1->left,pRoot2)||HasSubtree(pRoot1->right,pRoot2));
        }
        bool judge(TreeNode* pRoot1, TreeNode* pRoot2){
            if(!pRoot1 && pRoot2) return false;
            if(!pRoot1 || !pRoot2) return true;
            return (pRoot1->val == pRoot2->val) && judge(pRoot1->left, pRoot2->left) && judge(pRoot1->right, pRoot2->right);
        }
    };
    

    相关文章

      网友评论

          本文标题:树的子结构

          本文链接:https://www.haomeiwen.com/subject/kvdjlktx.html