作者在 2017-04-28 16:22:36 发布以下内容
一开始我用的变量是局部的它的毛病就是所有的操作只能做一次,然后啥也没改变。
那么解决的一个方法就是 引用地址
引用地址使得全局有效
不说了
直接上上点代码
typedef struct TreeNode
{
char Element;
TreeNode *Left;
TreeNode *Right;
}*MyTree;
void Exchange(MyTree T)
{
if(T)
{
MyTree Temp=NULL;
if(T->Left||T->Right)
{
Temp=T->Left;
T->Left=T->Right;
T->Right=Temp;
Exchange(T->Left);
Exchange(T->Right);
}
}
}
这个的交换二叉树左右节点,其实只是在局部变量改变而已
在主函数调用完之后呢,它的交换并没有实质意义
我记得c++里面有一个引用
引用可以解决这一毛病,也很简单
void Exchange(MyTree &T) //就只是这里不同
{
if(T)
{
MyTree Temp=NULL;
if(T->Left||T->Right)
{
Temp=T->Left;
T->Left=T->Right;
T->Right=Temp;
Exchange(T->Left);
Exchange(T->Right);
}
}
}