剑指offer:树的子结构

    xiaoxiao2022-07-07  149

    时间限制:1秒 空间限制:32768K 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)

    代码:

    /* 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 || !pRoot2) return false; return dfs(pRoot1,pRoot2) || HasSubtree(pRoot1->left, pRoot2) || HasSubtree(pRoot1->right, pRoot2); } private: bool dfs(TreeNode * r1, TreeNode * r2){ if(!r2) return true; if(!r1) return false; if(r1->val != r2->val) return false; return dfs(r1->left, r2->left) && dfs(r1->right, r2->right); } };
    最新回复(0)