首页 > 代码库 > 判断两棵二叉树是否相等
判断两棵二叉树是否相等
#include <iostream>using namespace std;struct TNode{ TNode * LeftChild; TNode * RightChild; char data;};TNode *CreateTree(){ TNode *pRoot=NULL; char data=http://www.mamicode.com/0; cin>>data; if (data=http://www.mamicode.com/=‘#‘) { pRoot=NULL; } else { pRoot=(TNode*)malloc(sizeof(TNode)); pRoot->data=http://www.mamicode.com/data; pRoot->LeftChild=CreateTree(); pRoot->RightChild=CreateTree(); } return pRoot;}int isTreeEqual(TNode *root1,TNode *root2){ bool isTree1NULL=(root1==NULL); bool isTree2NULL=(root2==NULL); if (isTree1NULL!=isTree2NULL)//两节点不等 { return 0; } if (isTree2NULL&&isTree1NULL)//两颗树都为空 相等 { return 1; } if (root1->data!=root2->data) { return 0; } return ( isTreeEqual(root1->LeftChild,root2->LeftChild)& isTreeEqual(root1->RightChild,root2->RightChild) ) | ( isTreeEqual(root1->LeftChild,root2->RightChild)& isTreeEqual(root1->RightChild,root2->LeftChild) );}void main(){ TNode *root1=CreateTree(); TNode* root2=CreateTree(); cout<<isTreeEqual(root1,root2);}
判断两棵二叉树是否相等
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。