#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
typedef struct BiTNode
{
int data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void CreateBiTree(BiTree &T)
{
int ch;
cin>>ch;
if(ch==0)
{
T=NULL;
}
else
{
T=new BiTNode;
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
}
void PreTraverse(BiTree T)
{
if(T)
{
cout<<T->data;
PreTraverse(T->lchild);
PreTraverse(T->rchild);
}
}
void Merge(BiTree T1,BiTree T2,BiTree &T)
{
if(T1==NULL&&T2==NULL)
{
T=NULL;
}
else if(T1==NULL && T2 != NULL)
{
T=new BiTNode;
T->data=T2->data;
}
else if(T2==NULL && T1 != NULL)
{
T=new BiTNode;
T->data=T1->data;
}
else
{
T=new BiTNode;
T->data=T1->data+T2->data;
Merge(T1->lchild,T2->lchild,T->lchild);
Merge(T1->rchild,T2->rchild,T->rchild);
}
}
int main()
{
BiTree T1,T2,T;
T1=new BiTNode;
T2=new BiTNode;
T=new BiTNode;
CreateBiTree(T1);
CreateBiTree(T2);
PreTraverse(T1);
printf("\n");
PreTraverse(T2);
Merge(T1,T2,T);
printf("\n");
PreTraverse(T);
}
LeetCode——二叉树的合并
最新推荐文章于 2024-03-02 19:44:57 发布