欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

复制一颗二叉树

程序员文章站 2022-03-27 08:34:58
...

和建树差不多,只不过节点的值不是手动输入了

#include<stdio.h>
#include<iostream>
#include<queue>
#include<stdlib.h>
using namespace std;
struct node
{
    char v;
    int num;
    int depth;
    struct node*ls,*rs;

};


struct node*head;
struct node*build()
{
    char ch;
    cin>>ch;
    if(ch=='#') return NULL;
    struct node*p=(struct node*)malloc(sizeof(struct node));
    p->v=ch;
    p->ls=build();
    p->rs=build();
    return p;

};
struct node*mycopy(struct node*p)
{
    if(!p)  return NULL;
    struct node*pp=(struct node*)malloc(sizeof(struct node));
    pp->v=p->v;
    pp->ls=mycopy(p->ls);
    pp->rs=mycopy(p->rs);
    return pp;

};
void middle(struct node*p)
{
    if(!p) return ;
    middle(p->ls);
    cout<<"/节点的值:"<<p->v<<endl;
    middle(p->rs);
}
int main()
{


    struct node*p=NULL;
    head=build();
    p=mycopy(head);
    middle(p);
    return 0;
}
复制一颗二叉树