比较两颗二叉树是否相等
2009-12-23 20:21
274 查看
比较两颗可以旋转的二叉树是否相等,二叉树的左右子节点可以旋转,比如可以把二叉树的左节点旋转成为右节点,右节点旋转成为左节点。
欢迎博友讨论。我的程序是用递归的思想去做。
欢迎博友讨论。我的程序是用递归的思想去做。
struct BinaryNode { int m_iValue; BinaryNode * m_pLeft; BinaryNode * m_pRight; }; bool IsEqual(BinaryNode* currentLeft, BinaryNode* currentRight) { //如果两个节点都是空 if(currentLeft==NULL && currentRight==NULL) { return 1; } //如果一个空一个非空 if(!currentLeft||!currentRight) { return 0; } //exit point if(currentLeft->m_pLeft==NULL && currentLeft->m_pRight==NULL && currentRight->m_pLeft==NULL && currentRight->m_pRight==NULL) { return (currentLeft->m_iValue==currentRight->m_iValue); } else { //check left right child 递归来做 if(currentLeft->m_iValue==currentRight->m_iValue) { if(IsEqual(currentLeft->m_pLeft,currentRight->m_pLeft)&&IsEqual(currentLeft->m_pRight,currentRight->m_pRight)) { return 1; } else if(IsEqual(currentLeft->m_pLeft,currentRight->m_pRight)&&IsEqual(currentLeft->m_pRight,currentRight->m_pLeft)) { return 1; } else { return 0; } } else { return 0; } } }
相关文章推荐
- leetcode之比较两颗二叉树是否完全一样
- 判断两颗二叉树是否相等
- 比较两棵旋转的二叉树是否相等
- c++二叉树(统计叶节点,判断两颗二叉树是否相等,交换二叉树的左孩子右孩子,输出叶子到根节点的路径)
- 比较两棵可旋转二叉树是否相等
- java 比较两个二叉树是否相等
- 判断两颗棵二叉树是否相等
- 判断两颗棵二叉树是否相等
- 编程比较两棵二叉树是否相等
- 判断两颗二叉树是否相等-Java实现
- C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?
- 在C语言中比较两个字符串是否相等的方法
- 比较BigDecimal对象是否相等
- VC中比较两个文件是否内容相等
- 比较时间格式是否相等的函数
- 判断二叉树是否相等(leetcode-100)
- 比较输入的两个字符串是否相等(c++ 11)
- 比较两个二叉树是否相同
- NDK中开发中比较字符串是否相等,
- 比较GUID是否相等