zoukankan      html  css  js  c++  java
  • Leetcode-951 Flip Equivalent Binary Trees(翻转等价二叉树)

     1 class Solution
     2 {
     3     public:
     4         void swapTree(TreeNode *root)
     5         {
     6             TreeNode *p= root->left;
     7             root->left = root->right;
     8             root->right=p;
     9         }
    10         bool isSameTree(TreeNode* p, TreeNode* q)
    11         {
    12             if(!p&&!q)
    13                 return true;
    14             else if(p&&!q)
    15                 return false;
    16             else if(!p&&q)
    17                 return false;
    18             if(p->val!=q->val)
    19                 return false;
    20             return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right);
    21         }
    22         bool nodeequal(TreeNode* p, TreeNode* q)
    23         {
    24             if(p->left==NULL&&q->left!=NULL
    25             ||p->right==NULL&&q->right!=NULL
    26             ||p->left!=NULL&&q->left==NULL
    27             ||p->right!=NULL&&q->right==NULL)
    28                 return false;
    29             if(p->left&&p->left->val!=q->left->val)
    30                 return false;
    31             if(p->right&&p->right->val!=q->right->val)
    32                 return false;
    33             return true;
    34         }
    35         bool flipEquiv(TreeNode* root1, TreeNode* root2)
    36         {
    37             if(root1==NULL&&root2!=NULL||
    38             root1!=NULL&&root2==NULL)
    39                 return false;
    40             if(root1==NULL&&root2==NULL)
    41                 return true;
    42             if(root1->left&&root1->right
    43                     &&!root2->right&&!root2->left)
    44                 return false;
    45             if(!nodeequal(root1,root2))
    46                 swapTree(root2);
    47             flipEquiv(root1->left,root2->left);
    48             flipEquiv(root1->right,root2->right);
    49             return isSameTree(root1,root2);
    50         }
    51 };
  • 相关阅读:
    codevs 3160 最长公共子串(SAM)
    noi2018d2t1
    后缀自动机
    [Scoi2014]方伯伯的玉米田
    【NOI2017】泳池
    【BZOJ2560】串珠子
    POJ 1737 统计有n个顶点的连通图有多少个 (带标号)
    【BZOJ3590】[Snoi2013]Quare 状压DP
    【BZOJ1095】【ZJOI2007】捉迷藏 [动态点分治]
    BZOJ1316: 树上的询问
  • 原文地址:https://www.cnblogs.com/Asurudo/p/10052883.html
Copyright © 2011-2022 走看看