zoukankan      html  css  js  c++  java
  • 判断二叉树是否相同

    判断二叉树是否相同

    当root1的左子树与root2的左子树相同,root1的右子树与root2的右子树相同时,这两颗二叉树相同。

    当root1的左子树与root2的右子树相同,root1的右子树与root2的左子树相同时,这两颗二叉树同样相同。

     1 bool IsEquals(BNode* root1,BNode* root2)  
     2 {  
     3       if (root1==NULL && root2==NULL) //都是空树
     4       {  
     5            return true;  
     6       }  
     7       else if (root1==NULL || root2==NULL) //其中一棵树为空
     8       {  
     9            return false;  
    10       }  
    11       else  
    12       {  //两棵树都不为空
    13             if (root1->data != root2->data)  //判断根结点是否相等
    14             {  
    15                   return false;  
    16             }  
    17   
    18             bool is_left = IsEquals(root1->left,root2->left);  //左子树相等?
    19             bool is_right = IsEquals(root1->right,root2->right);  //右子树相等
    20   
    21             if (is_left&&is_right)  //左右子树对应相等
    22             {
    23                   return true;
    24             }  
    25             else  
    26             {  
    27                   is_right = IsEquals(root1->right,root2->left);  
    28                   is_left = IsEquals(root1->left,root2->right);  
    29   
    30                   if (is_left&&is_right)  
    31                   {
    32                         return true;
    33                   }  
    34                   else  
    35                   {
    36                         return false;
    37                    } 
    38             }  
    39       }  
    40   
    41 }  
  • 相关阅读:
    java基础--日期--练习集锦
    java基础-数字与字符串-练习集锦
    java-多态-之疑惑
    java-接口与多态-
    java基础 -继承-练习集锦
    java基础-对象-练习集锦
    java基础--数组--练习集锦
    hibernate第二天
    jquery的一些笔记
    struts入门2
  • 原文地址:https://www.cnblogs.com/zfc-java/p/7577890.html
Copyright © 2011-2022 走看看