自学内容网 自学内容网

二叉树的镜像【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)!