《剑指Offer——二叉树的镜像》代码

Posted 穿迷彩服的鲨鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《剑指Offer——二叉树的镜像》代码相关的知识,希望对你有一定的参考价值。


前言

//==================================================================
// 《剑指Offer——二叉树的镜像》代码
// 题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。
//==================================================================


一、示例

/************************************************************************
/*
请完成一个函数,输入一个二叉树,该函数输出它的镜像。
例如输入:
     4
   /   \\
  2     7
 / \\   / \\
1   3 6   9
镜像输出:
     4
   /   \\
  7     2
 / \\   / \\
9   6 3   1
示例 1:
输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]
*/
*************************************************************************/

二、代码解析

1.新建.cpp文件

代码如下(示例):

//==================================================================
// 《剑指Offer——二叉树的镜像》代码
// 题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。
//==================================================================


#include<iostream>
using namespace std;


struct TreeNode
{
	int val;
	TreeNode* left;
	TreeNode* right;
};

void MirrorReccursively(TreeNode* root)
{
	if (root == nullptr)
	{
		return;
	}
	if (root->left == nullptr && root->right == nullptr)
	{
		return;
	}

	TreeNode* tempNode = root->left;
	root->left = root->right;
	root->right = tempNode;

	if (root->left)
	{
		MirrorReccursively(root->left);
	}
	if (root->right)
	{
		MirrorReccursively(root->right);
	}
}

/*
请完成一个函数,输入一个二叉树,该函数输出它的镜像。
例如输入:
     4
   /   \\
  2     7
 / \\   / \\
1   3 6   9
镜像输出:
     4
   /   \\
  7     2
 / \\   / \\
9   6 3   1
示例 1:
输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]
*/
TreeNode* mirrorTree(TreeNode* root)
{
	MirrorReccursively(root);
	return root;
}

以上是关于《剑指Offer——二叉树的镜像》代码的主要内容,如果未能解决你的问题,请参考以下文章

二叉树的镜像-剑指Offer

剑指offer——二叉树的镜像

剑指offer(三十四)之二叉树的镜像

剑指offer-(16)二叉树的镜像

剑指Offer 二叉树的镜像

Java 剑指offer(27) 二叉树的镜像