二叉树的镜像
来源:互联网 发布:mac lion dmg 编辑:程序博客网 时间:2024/05/19 19:13
1 /*
2 请完成一个函数,输入一个二叉树,该函数输出它的镜像。
3 二叉树的定义如下:
4 struct BinaryTreeNode
5 {
6 int m_nValue;
7 BinaryTreeNode* m_pLeft;
8 BinaryTreeNode* m_pRight;
9 };
10 通过画图分析可以得知,求一棵树的镜像的过程:我们先前序遍历这棵树的每个结点,如果遍历到的结点有子结点,就叫唤它的两个子结点。当交换所有非叶子结点的左右子结点之后,就得到了树的镜像
11 */
2 请完成一个函数,输入一个二叉树,该函数输出它的镜像。
3 二叉树的定义如下:
4 struct BinaryTreeNode
5 {
6 int m_nValue;
7 BinaryTreeNode* m_pLeft;
8 BinaryTreeNode* m_pRight;
9 };
10 通过画图分析可以得知,求一棵树的镜像的过程:我们先前序遍历这棵树的每个结点,如果遍历到的结点有子结点,就叫唤它的两个子结点。当交换所有非叶子结点的左右子结点之后,就得到了树的镜像
11 */
12
13 void MirrorRecursively(BinaryTreeNode* pNode) 14 { 15 if(pNode == NULL) //如果当前结点为空 循环结束条件 16 return; 17 18 if(pNode->m_pLeft == NULL && pNode->m_pRight == NULL) //左右子树皆为空 19 return; 20 21 BinaryTreeNode *pTemp = pNode->m_pLeft; //交换左右子树 22 pNode->m_pLeft = pNode->m_pRight; 23 pNode->m_pRight = pTemp; 24 25 if(pNode->m_pLeft) 26 MirrorRecursively(pNode->m_pLeft); //递归调动 27 28 if(pNode->m_pRight) 29 MirrorRecursively(pNode->m_pRight); 30 }
阅读全文
0 0
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 【effective Java读书笔记】类和接口(一)
- TensorFlow RNN 教程和代码
- Couldn't deal with it,bug!!!
- 【bzoj1260】[CQOI2007]涂色paint
- Spring整合Mybatis
- 二叉树的镜像
- 16. 排序--简单排序
- Spring
- IDEA Error:java: Compilation failed: internal java compiler error
- 机房合作——报表
- 顺时针打印矩阵
- mysql之存储过程把字符串拆分成单词,然后进行数据插入
- C++多态的实现原理
- mysql查询5分钟内的数据