题目描述: 假设二叉树采用二叉链表来存储,设计一个算法,将二叉树的左右子树进行交换。 算法思路: 采用递归的方式来做,首先交换结点a的左孩子的左、右子树,然后交换结点a的右孩子的左、右子树,最后交换结点a的左、右孩子,当结点为空的时候递归结束。 代码如下: void swap(BiTree a){ if(a){ swap(a->lchild); swap(a->rchild); temp=a->lchild; a->lchild=a->rchild; a->rchild=temp; } }