예제 #1
0
 bool isSymmetric(TreeNode* root) {
     if(!root) return true;
     invertTree(root->left);
     return isSameTree(root->left,root->right);
 }
예제 #2
0
 bool isSameTree(TreeNode* p, TreeNode* q) {
     if (!p && !q)   return 1;
     if (p && q && p->val == q->val)
         return isSameTree(p->left,q->left) && isSameTree(p->right,q->right);
     return 0;
 }
예제 #3
0
 bool isSameTree(TreeNode* p, TreeNode* q) {
     return (!p&&!q)||(p&&q&&(p->val == q->val))&&isSameTree(p->left, q->left)&&isSameTree(p->right, q->right);
 }
예제 #4
0
/*
Same Tree
Total Accepted: 82343 Total Submissions: 197584 Difficulty: Easy

Given two binary trees, write a function to check if they are equal or not.

Two binary trees are considered equal if they are structurally identical and the nodes have the same value. 
https://leetcode.com/problems/same-tree/
*/
bool isSameTree(TreeNode* p, TreeNode* q) {
        if(p==NULL && q==NULL) return true;
        else if((p==NULL && q!=NULL)||(p!=NULL && q==NULL)) return false;
        if(p->val!=q->val) return false;
        else return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right);
    }
예제 #5
0
 bool isSameTree(TreeNode* p, TreeNode* q) {
     if(!p&&!q) return true;
     if(!p||!q) return false;
     return p->val==q->val&&isSameTree(p->left,q->left)&&isSameTree(p->right,q->right);
 }
 bool isSameTree(TreeNode *p, TreeNode *q) {
     if(p == NULL || q == NULL)
         return p == q;
     return p->val == q->val && isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
 }
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
bool isSameTree(struct TreeNode* p, struct TreeNode* q) {
    if (p == NULL && q == NULL) { return true; }
    if (p == NULL || q == NULL) { return false; }

    return (p->val == q->val) && isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
}
예제 #8
0
bool isSameTree(TreeNode* p, TreeNode* q){
        return !p && !q ? true : (p && q && p->val == q->val ? isSameTree(p->left, q->left) && isSameTree(p->right, q->right) : false);
}
예제 #9
0
 bool isSameTree(TreeNode* p, TreeNode* q) {
     if (p == NULL) return q == NULL;
     if (q == NULL) return false;
     return (p->val == q->val) && isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
 }
예제 #10
0
 bool isSameTree(TreeNode* p, TreeNode* q) {
     if ((p == nullptr) || (q == nullptr)) {
         return p == q;
     }
     return (p->val == q->val) && isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
 }
 bool isSameTree(TreeNode *p, TreeNode *q) {
     if (!p && !q) return true;
     if ((p && !q) || (!p && q) || (p->val != q->val)) return false;
     return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
 }
예제 #12
0
 bool isSameTree(TreeNode *p, TreeNode *q) {
     if (!p && !q) {return true;}
     if (!p || !q) {return false;}
     if (p->val != q->val) {return false;}
     return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
 }
예제 #13
0
 bool isSymmetrical(TreeNode* pRoot)
 {
 	if(pRoot == NULL)
         return true;
     return isSameTree(pRoot->left, pRoot->right);
 }
예제 #14
0
 bool isSameTree(TreeNode* p, TreeNode* q) {
     if(p == NULL && q == NULL) return true;
     if(p == NULL || q == NULL) return false;
     if(p->val != q->val) return false;
     return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
 }
예제 #15
0
 bool isSymmetric(TreeNode* root) {
     TreeNode *p = copyTree(root);
     invertTree(p);
     return isSameTree(root,p);
 }