题目概述
解题思路
首先,我们需要知道什么是二叉树的镜像
如图所示,这两颗二叉树便互为镜像
实现方法,前序遍历这颗二叉树
如果遇到空节点,就返回
否则交换两个子孩子
遍历完后,便得到了二叉树的镜像
代码实现
//二叉树的镜像
void TreeMirror(TreeNode* root)
{
if (root == NULL)
return;
//交换每个节点的根节点
std::swap(root->_left, root->_right);
TreeMirror(root->_left);
TreeMirror(root->_right);
}
题目扩展
非递归怎么实现呢?
其实也很简单
用二叉树的前序非递归遍历即可