<span style="font-family:Microsoft YaHei;font-size:12px;">#include <iostream>
using namespace std;
struct Node{
int data;
Node* left;
Node* right;
};
bool compare_tree(Node* root_1, Node* root_2) {
if(root_1 == NULL&&root_2 == NULL) return true;
else if(root_1 == NULL||root_2 == NULL) return false;
else {
if(root_1 -> data != root_2 -> data) return false;
bool flag = compare_tree(root_1 -> left, root_2 -> left) && compare_tree(root_1 -> right, root_2 -> right);
if(flag) return true;
else return false;
}
return false;
}
Node* create_node(int data) {
Node* node = new Node;
node -> data = data;
node -> left = NULL;
node -> right = NULL;
return node;
}
int main() {
Node* root_1 = new Node;
Node* root_2 = new Node;
root_1 -> data = 1;
root_2 -> data = 1;
root_1 -> left = create_node(2);
root_2 -> left = create_node(2);
root_1 -> right = NULL;
root_2 -> right = NULL;
if(compare_tree(root_1,root_2)) cout<<"same";
else cout<<"not same";
cout<<endl;
}</span>
比较两棵二叉树是否相同
最新推荐文章于 2022-03-23 10:03:07 发布