#10416. szjy_6_树_036
szjy_6_树_036
szjy_6_树_036
函数 mirror 交换每个结点的左右子树。执行后,程序输出是( )。
#include <iostream>
#include <utility>
using namespace std;
struct Node {
int value;
Node* left = nullptr;
Node* right = nullptr;
};
void mirror(Node* root) {
if (root == nullptr) return;
swap(root->left, root->right);
mirror(root->left);
mirror(root->right);
}
void preorder(Node* root) {
if (root == nullptr) return;
cout << root->value << ' ';
preorder(root->left);
preorder(root->right);
}
int main() {
Node a{1}, b{2}, c{3}, d{4}, e{5};
a.left = &b; a.right = &c;
b.left = &d;
c.right = &e;
mirror(&a);
preorder(&a);
}
{{ select(1) }}
1 2 4 3 55 3 1 2 41 3 2 5 41 3 5 2 4