百度面试题:判断两棵树是否相等
2012-03-09 23:23
134 查看
请实现两棵树是否相等的比较,相等返回1,否则返回其他值,并说明算法复杂度。
数据结构为:
typedef struct_TreeNode{
char c;
TreeNode *leftchild;
TreeNode *rightchild;
}TreeNode;
函数接口为:int CompTree(TreeNode* tree1,TreeNode* tree2);
注:A、B两棵树相等当且仅当Root->c==RootB-->c,而且A和B的左右子树相等或者左右互换相等。
参考了此网址的内容
http://hi.baidu.com/mianshiti/blog/item/1070b78ce2ece2f1513d92e7.html
数据结构为:
typedef struct_TreeNode{
char c;
TreeNode *leftchild;
TreeNode *rightchild;
}TreeNode;
函数接口为:int CompTree(TreeNode* tree1,TreeNode* tree2);
注:A、B两棵树相等当且仅当Root->c==RootB-->c,而且A和B的左右子树相等或者左右互换相等。
参考了此网址的内容
http://hi.baidu.com/mianshiti/blog/item/1070b78ce2ece2f1513d92e7.html
#include<iostream> using namespace std; typedef struct _TreeNode{ char c; _TreeNode *leftchild; _TreeNode *rightchild; }TreeNode; int CompTree(TreeNode* tree1,TreeNode* tree2){ if(tree1==NULL&&tree2==NULL) return 1; if(tree1==NULL||tree2==NULL) return 0; if(tree1->c!=tree2->c) return 0; return ( (CompTree(tree1->leftchild,tree2->leftchild) &&CompTree(tree1->rightchild,tree2->rightchild))|| (CompTree(tree1->leftchild,tree2->rightchild) &&CompTree(tree1->rightchild,tree2->leftchild))); } int main(){ TreeNode t1,t2,t3,t4,t5; t1.c='f'; t2.c='a'; t3.c='v'; t4.c='o'; t5.c='r'; t1.leftchild=&t2; t1.rightchild=&t3; t2.leftchild=NULL; t2.rightchild=&t4; t3.leftchild=&t5; t3.rightchild=NULL; t4.rightchild=NULL; t4.leftchild=NULL; t5.rightchild=NULL; t5.leftchild=NULL; TreeNode n1,n2,n3,n4,n5; n1.c='f'; n2.c='a'; n3.c='v'; n4.c='o'; n5.c='r'; n1.leftchild=&n3; n1.rightchild=&n2; n2.leftchild=NULL; n2.rightchild=&n4; n3.leftchild=&n5; n3.rightchild=NULL; n4.rightchild=NULL; n4.leftchild=NULL; n5.rightchild=NULL; n5.leftchild=NULL; if(CompTree(&t1,&n1)) cout<<"equal"<<endl; else cout<<"different"<<endl; int i;cin>>i; return 0; }
相关文章推荐
- 判断两棵树是否相等
- 判断两棵树是否相等
- 判断两棵树是否相等
- java实现二叉树查找,统计结点个数,统计树的深度及判断两棵树是否相等
- 判断两棵树是否相等 leecode
- 二叉树(二) 求二叉树高度,根据先序和中序构建二叉树,判断二叉树是否是完全二叉树,判断两棵树是否相等
- Same Tree 判断两棵树是否相等
- 百度面试题-判断是否有环
- 用递归方法判断两棵树是否相等
- JS判断两个对象内容是否相等的方法示例及开发面试题汇总(图)
- 判断两棵树是否相等
- 树---判断两棵树是否相等
- (树)判断两棵树是否相等
- 判断两棵树是否相等
- 代码实现判断两棵树是否相等
- 如何判断一个链表中是否有环(百度面试题)
- 判断两棵树是否相等
- 使用三目运算符,判断两个对象是否相等(包括null的情况)
- 【面试题】判断一棵二叉树是否是完全二叉树
- 剑指offer-第四章解决面试题思路(判断一个数组是否为二叉搜索树的后序遍历序列)