核心代码如下:
通过递归遍历或者其他的遍历,在遍历的同时,进行对结点判断,是否存在左孩子和右孩子,若存在(至少一个),则进行交换
void Exchange(BiNode*t)
{
if(t->lchild!=NULL)
Exchange(t->lchild);
if(t->rchild!=NULL)
Exchange(t->rchild);
BiNode*pointer;
pointer=t->lchild;
t->lchild=t->rchild;
t->rchild=pointer;
}
【二叉树|交换二叉树中每个节点的两个子女】参考资料
http://m.blog.csdn.net/CLOCK_ZHONG_ZHEN/article/details/50225813
推荐阅读
- 笔记|C语言数据结构——二叉树的顺序存储和二叉树的遍历
- C语言学习(bit)|16.C语言进阶——深度剖析数据在内存中的存储
- 数据结构和算法|LeetCode 的正确使用方式
- 先序遍历 中序遍历 后序遍历 层序遍历
- 数据结构|C++技巧(用class类实现链表)
- 数据结构|贪吃蛇代码--c语言版 visual c++6.0打开
- 算法|算法-二分查找
- 数据结构学习指导|数据结构初阶(线性表)
- leetcode题解|leetcode#106. 从中序与后序遍历序列构造二叉树
- java|ObjectOrientedProgramming - 面向对象的编程(多态、抽象类、接口)- Java - 细节狂魔