百度面试题:判断两棵树是否相等
来源:互联网 发布:爱信诺税控开票软件 编辑:程序博客网 时间:2024/05/22 08:22
请实现两棵树是否相等的比较,相等返回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
#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;elsecout<<"different"<<endl;int i;cin>>i;return 0;}
- 百度面试题:判断两棵树是否相等
- 百度面试题-判断是否有环
- 判断两棵树是否相等
- 判断两棵树是否相等
- 判断两棵树是否相等
- 判断两棵树是否相等
- 判断两棵树是否相等
- 面试题:比较两个集合是否相等?
- 树---判断两棵树是否相等
- 百度面试题-编码和相等的数
- 一道面试题:比较两个集合是否相等?
- 一道面试题:怎么比较两个集合是否相等
- 一道面试题:怎么比较两个集合是否相等?
- Java面试题 两个String如何比较是否相等的
- 一道面试题:怎么比较两个集合是否相等?(转)
- 如何判断一个链表中是否有环(百度面试题)
- Same Tree 判断两棵树是否相等
- 代码实现判断两棵树是否相等
- Python:通过自定义系统级快捷键来控制程序开始或停止记录日志(使用小技巧解决一个貌似无解的问题)
- POJ 2195 Going Home
- javascript函数
- 用递归法求因式分解
- 黑马程序员训练营--数组的使用
- 百度面试题:判断两棵树是否相等
- 使用MiniGUI
- VS2010 / VC2010 BUG应对:to_string 重载函数不完整导致编译错误
- Struts2 Rest Plugin的使用
- java socket参数详解:SoTimeout
- arm 中的nor flash 和 nand flash
- linux下代码阅读 -- 配置vim+ctags+taglist+cscope
- VB6.0 与 VS2010 在VB编程上的区别小总结
- java socket参数详解:KeepAlive