二叉树的镜像
来源:互联网 发布:装载xml数据方法异常 编辑:程序博客网 时间:2024/05/22 00:05
题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。
struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight;}
方法:前序遍历这棵树的每个结点,如果遍历到的结点有子结点,就交换它的两个子结点。当交换完所有非叶子结点的左右子结点后,就得到了树的镜像。
void MirrorRecursively (BinaryTreeNode *pNode){ if (pNode == NULL){ return; } if (pNode->m_pLeft == NULL && pNode->m_pRight == NULL){ return; } BinaryTreeNode *pTemp = pNode->m_pLeft; pNode->m_pLeft = pNode->m_pLeft; pNode->m_pRight = pTemp; if (pNode->m_pLeft){ MirrorRecusively(pNode->m_pLeft); } if (pNode->m_pRight){ MirrorRecursively(pNode->m_pRight); }}
测试用例:
- 功能测试(普通二叉树,二叉树的所有结点都没有左子树或者右子树,只有一个结点的二叉树)
- 特殊输入测试(二叉树的根结点为NULL指针)
0 0
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- AngularJs服务
- Java中的23种设计模式
- dia在linux中无法输入中文
- java获取客户端请求IP地址 获取公网ip
- 简单易懂的jquery版三级联动select
- 二叉树的镜像
- 字符串,switch
- 解决eclipse快捷方式无法启动
- crtmpserver 启动初始化(写的比较详细)
- MPLS调试笔记之四脚本实现
- 栈的压入 弹出序列
- CentOS 6 下安装Matlab教程
- centos 6.3下安装Hadoop 2.7.1并配置伪分布式集群
- js添加行,删除行