剑指Offer系列-面试题19:二叉树的镜像
来源:互联网 发布:网络视频广播 编辑:程序博客网 时间:2024/05/04 15:17
题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。二叉树的结点定义如下:
struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight;};
思路:
代码:
// 递归实现void MirrorRecursively(BinaryTreeNode *pNode){ if((pNode == NULL) || (pNode->m_pLeft == NULL && pNode->m_pRight == NULL)) return; BinaryTreeNode *pTemp = pNode->m_pLeft; pNode->m_pLeft = pNode->m_pRight; pNode->m_pRight = pTemp; if(pNode->m_pLeft) MirrorRecursively(pNode->m_pLeft); if(pNode->m_pRight) MirrorRecursively(pNode->m_pRight);}// 非递归实现void MirrorIteratively(BinaryTreeNode* pRoot){ if(pRoot == NULL) return; std::stack<BinaryTreeNode*> stackTreeNode; stackTreeNode.push(pRoot); while(stackTreeNode.size() > 0) { BinaryTreeNode *pNode = stackTreeNode.top(); stackTreeNode.pop(); BinaryTreeNode *pTemp = pNode->m_pLeft; pNode->m_pLeft = pNode->m_pRight; pNode->m_pRight = pTemp; if(pNode->m_pLeft) stackTreeNode.push(pNode->m_pLeft); if(pNode->m_pRight) stackTreeNode.push(pNode->m_pRight); }}
0 0
- 面试题19_二叉树的镜像——剑指offer系列
- 剑指Offer系列-面试题19:二叉树的镜像
- [剑指offer][面试题19]二叉树的镜像
- 【剑指offer】面试题19:二叉树的镜像
- 剑指offer 面试题19 二叉树的镜像
- 剑指Offer:面试题19 二叉树的镜像
- 《剑指Offer》面试题19:二叉树的镜像
- 剑指offer-面试题19:二叉树的镜像
- 剑指Offer----面试题19:二叉树的镜像
- 剑指offer面试题19:二叉树的镜像
- 剑指offer面试题19:二叉树的镜像
- 剑指offer面试题19:二叉树的镜像
- 剑指offer--面试题19:二叉树的镜像
- 剑指offer-面试题19-二叉树的镜像
- 【剑指offer】面试题19:二叉树的镜像
- 【面试题】剑指Offer-19-二叉树的镜像
- 剑指offer-面试题19-二叉树的镜像
- 剑指offer-面试题 19:二叉树的镜像
- final\String\StringBuffer
- Caffe 环境搭建中应注意的问题
- 对前面信息管理系统的完善
- Easyui的简单tree
- OpenCV—基本矩阵操作与示例
- 剑指Offer系列-面试题19:二叉树的镜像
- Canvas标签实现写字板功能
- 关于iOS页面中scrollview中嵌入百度地图滑动冲突问题解决方法
- 洛谷 1130_红pai_dp
- java 异常链
- mysql执行sql语句优化分析命令explain命令小记
- 智能物联网RTU数据采集终端在农田远程监测中的应用
- linux下jdk安装
- python import模块方法