剑指offer-17.树的子结构

来源:互联网 发布:淘书网软件下载 编辑:程序博客网 时间:2024/06/05 14:56

题目:输入两棵二叉树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 {     bool ISubtree(TreeNode* pRootA, TreeNode* pRootB)    {         if (pRootB == NULL)             return true;         if (pRootA == NULL)             return false;         if (pRootA->val == pRootB->val)         {           return (ISubtree(pRootA->left,  pRootB->left) && ISubtree(pRootA->right,  pRootB->right) );         }         else             return false;    }public:    bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2)    {        if (pRoot1 == NULL || pRoot2 == NULL)            return false;        return ISubtree( pRoot1,  pRoot2)|| HasSubtree(pRoot1->left, pRoot2) || HasSubtree(pRoot1->right, pRoot2);    }};


0 0
原创粉丝点击