标签:auto creat 输出 roo 镜像 main include ima end
请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如下图所示,左图是原二叉树,而右图则是该二叉树的镜像
当交换完所有非叶子结点的左右子结点之后,就得到了树的镜像。
#include <iostream> using namespace std; struct tree { double data; struct tree *left,*right; tree(int d=0):data(d) { left=right=nullptr; } }; class Solution { public: void create(tree *&root); void pre_order(tree *root); void mirror(tree *r); tree *root; }; void Solution::create(tree *&root) { double x; cin>>x; if(x==0) root=nullptr; else { root=new tree(); root->data=x; create(root->left); create(root->right); } } void Solution::pre_order(tree *root) { if(root) { cout<<root->data<<endl; pre_order(root->left); pre_order(root->right); } } void Solution::mirror(tree *r) { if(!r) return; if(r->left==nullptr&&r->right==nullptr) return; auto t=r->left; r->left=r->right; r->right=t; if(r->left) mirror(r->left); if(r->right) mirror(r->right); } int main() { Solution s; s.create(s.root); s.mirror(s.root); s.pre_order(s.root); return 0; }
标签:auto creat 输出 roo 镜像 main include ima end
原文地址:https://www.cnblogs.com/tianzeng/p/10180449.html