剑指offer--面试题28:对称的二叉树
来源:互联网 发布:java购物商城源码 编辑:程序博客网 时间:2024/05/18 23:13
#include <cstdio>#define nullptr NULLstruct BinaryTreeNode { int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight; };BinaryTreeNode* CreateBinaryTreeNode(int value){ BinaryTreeNode* pNode = new BinaryTreeNode(); pNode->m_nValue = value; pNode->m_pLeft = nullptr; pNode->m_pRight = nullptr; return pNode;}void ConnectTreeNodes(BinaryTreeNode* pParent, BinaryTreeNode* pLeft, BinaryTreeNode* pRight){ if(pParent != nullptr) { pParent->m_pLeft = pLeft; pParent->m_pRight = pRight; }}void DestroyTree(BinaryTreeNode* pRoot){ if(pRoot != nullptr) { BinaryTreeNode* pLeft = pRoot->m_pLeft; BinaryTreeNode* pRight = pRoot->m_pRight; delete pRoot; pRoot = nullptr; DestroyTree(pLeft); DestroyTree(pRight); }}bool isSymmetrical(BinaryTreeNode* pRoot1, BinaryTreeNode* pRoot2);bool isSymmetrical(BinaryTreeNode* pRoot){ return isSymmetrical(pRoot, pRoot);}bool isSymmetrical(BinaryTreeNode* pRoot1, BinaryTreeNode* pRoot2){ if(pRoot1 == nullptr && pRoot2 == nullptr) return true; if(pRoot1 == nullptr || pRoot2 == nullptr) return false; if(pRoot1->m_nValue != pRoot2->m_nValue) return false; return isSymmetrical(pRoot1->m_pLeft, pRoot2->m_pRight) && isSymmetrical(pRoot1->m_pRight, pRoot2->m_pLeft);}void main(){ BinaryTreeNode* pNode8 = CreateBinaryTreeNode(8); BinaryTreeNode* pNode61 = CreateBinaryTreeNode(6); BinaryTreeNode* pNode9 = CreateBinaryTreeNode(6); BinaryTreeNode* pNode51 = CreateBinaryTreeNode(5); BinaryTreeNode* pNode71 = CreateBinaryTreeNode(7); BinaryTreeNode* pNode72 = CreateBinaryTreeNode(7); BinaryTreeNode* pNode52 = CreateBinaryTreeNode(5); ConnectTreeNodes(pNode8, pNode61, pNode9); ConnectTreeNodes(pNode61, pNode51, pNode71); ConnectTreeNodes(pNode9, pNode72, pNode52);if(isSymmetrical( pNode8))printf("是对称的二叉树\n"); DestroyTree(pNode8);}
阅读全文
0 0
- 【剑指offer】面试题28:对称的二叉树
- 剑指offer--面试题28:对称的二叉树
- 【剑指Offer学习】【面试题59:对称的二叉树】
- 剑指offer-面试题59:对称的二叉树
- 剑指offer--面试题59:对称的二叉树
- (剑指Offer)面试题59:对称的二叉树
- 剑指offer-面试题59-对称的二叉树
- 剑指offer 面试题59 对称的二叉树
- (剑指Offer)面试题59:对称的二叉树
- 剑指offer面试题[59]-对称的二叉树
- 剑指Offer面试题59:对称二叉树 Java实现
- 【剑指Offer】面试题59:对称二叉树
- 《剑指Offer》学习笔记--面试题59:对称的二叉树
- 剑指offer面试题59 对称的二叉树(java实现)
- 剑指offer——面试题59:对称的二叉树
- 面试题59:对称的二叉树
- 面试题66:对称的二叉树
- 面试题59:对称的二叉树
- [leetcode]565. Array Nesting
- Leetcode 124. Binary Tree Maximum Path Sum
- 常用类
- anaconda 下多版本Python 安装说明
- 个人不熟悉的面试题目(c++,数据结构)
- 剑指offer--面试题28:对称的二叉树
- 实习遇到的坑....
- hdu 3549 isap
- jQuery中foreach的continue和break : Uncaught SyntaxError: Illegal continue statement
- MySQL数据库二(数据表创建以及插入数据)
- 据说题目很水 FZU
- javascript基础(4)
- Android 音视频采集与软编码总结
- React Native之npm ERR! 无法安装依赖包的解决办法