将二叉树中所有结点的左、右子树相互交换

编写递归算法,将二叉树中所有结点的左、右子树相互交换。

二叉链表类型定义:

typedef struct BiTNode {
    TElemType data;
    BiTNode  *lchild, *rchild;
} BiTNode, *BiTree;
实现函数如下:

void Exchange(BiTree &bt)
/* Exchange the left and right leaves of */
/* bitree whose root node is bt          */
{
    BiTree temp;
    if(bt){
        temp = bt -> lchild;
        bt -> lchild = bt -> rchild;
        bt -> rchild = temp;
        Exchange(bt -> lchild);
        Exchange(bt -> rchild);
    }
}

你可能感兴趣的:(数据结构)