先序遍历树的每个结点,若遍历到的结点有子结点,则交换它的两个子结点。
1. 递归求解:
voidMirroRecursively(BinaryTreeNode *pNode)
{
if(NULL == pNode)
return;
if(NULL == pNode->Left && NULL== pNode->Right)...
分类:
其他好文 时间:
2015-07-07 17:06:22
阅读次数:
170
【题目】请完成一个函数,输入一个二叉树,该函数输出它的镜像。【分析】镜像概念:犹如人照镜子一般,二叉树的镜像,就是将镜像二叉树与原二叉树对折可以重合的意思,如下:
实现方法:
一层一层向下遍历每个根节点,将根节点下的左右孩子交换位置。
从根节点开始,交换其左右孩子6和7,以7为根节点的子树结构和以6为根节点的子树结构完全交换后,递归操作左子树和右子树,如图所示。【测试结果】测试例中二叉树:...
分类:
其他好文 时间:
2015-06-17 21:30:59
阅读次数:
159
用了这么久的递归,现在不让用递归了,你行么?...
分类:
编程语言 时间:
2015-05-04 12:06:45
阅读次数:
174
题目描述:
输入一个二叉树,输出其镜像。
九度OJ的测试很蛋疼啊~
这里,我先写一个求二叉树镜像的代码,使用自己的测试代码:
思路很简单:先判断是否左右孩子都为空,如果不是,则交换,然后递归左右子树。其实是先序遍历。
/*
二叉树镜像
by Rowandjj
2014/8/1
*/
#include
using namespace std;
typedef str...
分类:
其他好文 时间:
2014-08-01 19:47:22
阅读次数:
266
题目:输入一个二叉树,输出其镜像。BinTreeNode* ReverseTree(BinTreeNode* pRoot){ if (pRoot == NULL) return NULL; BinTreeNode* pLeftReverse = ReverseTree(pRoot->le...
分类:
其他好文 时间:
2014-06-15 19:40:38
阅读次数:
149