Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.88 KB | None | 0 0
  1. /**
  2.  * Definition for a binary tree node.
  3.  * struct TreeNode {
  4.  *     int val;
  5.  *     TreeNode *left;
  6.  *     TreeNode *right;
  7.  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
  8.  * };
  9.  */
  10. class Solution {
  11.     bool Match(TreeNode* s, TreeNode* t) {
  12.         if (s==nullptr&&t==nullptr)
  13.             return true;
  14.         if (s==nullptr||t==nullptr)
  15.             return false;
  16.         if (s->val!=t->val)
  17.             return false;
  18.         return Match(s->left, t->left)&&Match(s->right, t->right);
  19.     }
  20.     bool Traverse(TreeNode* s, TreeNode* t) {
  21.         if (s==nullptr)
  22.             return t==nullptr;
  23.         if (s->val==t->val) {
  24.             if (Match(s,t))
  25.                 return true;
  26.         }
  27.         return Traverse (s->left, t)||Traverse(s->right, t);
  28.        
  29.     }
  30. public:
  31.     bool isSubtree(TreeNode* s, TreeNode* t) {
  32.         return Traverse(s,t);
  33.     }
  34. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement