翻转二叉树(C++)
2015-06-25 21:39
246 查看
问题描述
—————————————————————————————————————————————————————————————————————————————为了更加直观地描述翻转二叉树的问题,我们直接使用下图对问题进行描述:
从图中我们可以看出,二叉树翻转后的结果就如同原来二叉树在镜子里的“像”一样,这就是这个问题所要达到的效果。
算法原理
—————————————————————————————————————————————————————————————————————————————在数据结构中,对于树这种结构,我们经常采用的策略是使用递归的方式,在这里,我们也使用递归来解决这个问题。
递归算法步骤:
1、对二叉树的左子树进行翻转
2、对二叉树的右子树进行翻转
3、将左右子树的根节点进行交换(不用考虑原二叉树的根节点,因为原二叉树的根节点在翻转前后没有改变)
C++ 代码
————————————————————————————————————————————————————————————————————————————1、树节点定义
2、递归代码
—————————————————————————————————————————————————————————————————————————————
谢谢您的阅读,有何意见和建议,欢迎交流!
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)
—————————————————————————————————————————————————————————————————————————————
相关文章推荐
- C++/C宏定义中## 连接符与# 符的含义
- C++的常量
- C++文件操作详解(ifstream、ofstream、fstream)
- C++中相对路径与绝对路径以及斜杠与反斜杠的区别
- C++实现顺序队列
- C++头文件定义规则
- C语言关键字
- C++ 一些常用函数的使用(1)
- C++13.1.2合成复制构造函数----定义复制对象时会发生什么
- 微软100题
- [LeetCode] Jump Game II
- C与C++代码互相访问
- 微软100题第46题:四对括号可以有多少种匹配排列方式?
- 北大百炼1006 Biorhythms 题解
- 北大百炼1005 I Think I Need a Houseboat题解
- 北大百炼1004 Financial Management 题解
- c++11 移动语意 gcc 实测
- 俄罗斯方块(C语言)
- C++ Primer 学习笔记_9_标准库类型(续3) -- biteset
- C++ Primer 学习笔记_8_标准库类型(续2) -- iterator