剑指offer 27二叉树的镜像(C语言描述)

题目描述:

剑指offer 27二叉树的镜像(C语言描述)_第1张图片

题目来源

https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof/

利用先序遍历递归的两种方法

方法一:

void exchange(struct TreeNode *root)
{
		struct TreeNode *T;
		T=root->left;
		root->left=root->right;
		root->right=T;
}

struct TreeNode* mirrorTree(struct TreeNode* root){
	
		if(root==NULL)
		{
			return;
		}
		exchange(root);
		mirrorTree(root->left);
		mirrorTree(root->right);
		return root;
}

方法二:
构造一个新的二叉树:

struct TreeNode* mirrorTree(struct TreeNode* root){
	if(root==NULL)
	{
		return;
	}
	struct TreeNode *temp=(struct TreeNode*)malloc(sizeof(struct TreeNode));
	temp->val=root->val;
	temp->left=mirrorTree(root->right);
	temp->right=mirrorTree(root->left);
	return temp;
}

你可能感兴趣的:(数据结构刷题记录)