核心代码如下:
通过递归遍历或者其他的遍历,在遍历的同时,进行对结点判断,是否存在左孩子和右孩子,若存在(至少一个),则进行交换
void Exchange(BiNode<T>*t)
{
if(t->lchild!=NULL)
Exchange(t->lchild);
if(t->rchild!=NULL)
Exchange(t->rchild);
BiNode<T>*pointer;
pointer=t->lchild;
t->lchild=t->rchild;
t->rchild=pointer;
}
参考资料
http://m.blog.csdn.net/CLOCK_ZHONG_ZHEN/article/details/50225813