当二叉树每个节点中的值对应相等时,二叉树相等,否则不相等。
struct BTreeNode
{
int v;
BTreeNode* left;
BTreeNode* right;
};
函数原型:
bool BTreeCompare(BTreeNode* b1, BTreeNode* b2);
两种实现方式:递归实现和利用层次遍历的方法实现。层次遍历要借助队列实现。
#include <iostream>
#include <list>
using namespace std;
struct BTreeNode
{
int v;
BTreeNode* left;
BTreeNode* right;
};
bool BTreeCompare(BTreeNode* b1, BTreeNode* b2)
{
bool ret = true;
/*两个结点都存在*/
if( ret && b1 != NULL && b2 != NULL)
{
if(b1->v == b2->v)
{
/*分别遍历比较左右子树*/
ret = ret && BTreeCompare(b1->left, b2->left) && BTreeCompare(b1->right, b2->right);
}