二叉树的镜像【c++】
#include <iostream>
#include <vector>
using namespace std;
//双链表节点结构
typedef struct treeNode {
int value;
struct treeNode* left;
struct treeNode* right;
treeNode(int x) : value(x), left(nullptr), right(nullptr) {}
} TreeNode;
void mirrorTree(TreeNode* root)
{
if (root == nullptr)
{
return;
}
TreeNode* tempNode = root->left;
root->left = root->right;
root->right = tempNode;
mirrorTree(root->left);
mirrorTree(root->right);
}
void inOrderTraversal(TreeNode* root) {
if (root == nullptr) {
return;
}
inOrderTraversal(root->left);
std::cout << root->value << " ";
inOrderTraversal(root->right);
}
int main()
{
// 构建二叉搜索树
TreeNode* root = new TreeNode(4);
root->left = new TreeNode(2);
root->right = new TreeNode(5);
root->left->left = new TreeNode(1);
root->left->right = new TreeNode(3);
// 4
// 2 5
// 1 3
cout << "初始二叉树: " << endl;
inOrderTraversal(root);
mirrorTree(root);
cout << endl;
cout << "镜像后的二叉树: " << endl;
inOrderTraversal(root);
system("pause");
return 0;
}
https://blog.csdn.net/qq_41552331/article/details/105569459
原文地址:https://blog.csdn.net/weixin_53161762/article/details/137864774
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!