Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Definition for a binary tree node.
- * struct TreeNode {
- * int val;
- * TreeNode *left;
- * TreeNode *right;
- * TreeNode(int x) : val(x), left(NULL), right(NULL) {}
- * };
- */
- class Solution {
- bool Match(TreeNode* s, TreeNode* t) {
- if (s==nullptr&&t==nullptr)
- return true;
- if (s==nullptr||t==nullptr)
- return false;
- if (s->val!=t->val)
- return false;
- return Match(s->left, t->left)&&Match(s->right, t->right);
- }
- bool Traverse(TreeNode* s, TreeNode* t) {
- if (s==nullptr)
- return t==nullptr;
- if (s->val==t->val) {
- if (Match(s,t))
- return true;
- }
- return Traverse (s->left, t)||Traverse(s->right, t);
- }
- public:
- bool isSubtree(TreeNode* s, TreeNode* t) {
- return Traverse(s,t);
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement