围绕二叉树的算法实在是太多了,以前也总结过一些,但这次决定通过博客的方式,把自己的一些总结和大家分享一下。
首先声明,代码中肯定会参考一些别人的代码,由于是陆陆续续总结的,所以没法给出参考的链接,在此谨表示感谢,如果觉得侵犯了版权,可以给我留言。
由于二叉树相关的算法很多,所以我们将以专辑的方式讨论一下。
在讨论具体算法之前,想想要是能把二叉树打印出来多好啊,看到很多博客上都有很多的图,看起来确实很直观。
对于链表,树,图等数据结构,本身也是很适合用可视化的方法来表示的。
可视化方面的软件也有不少,以前接触过graphviz,知道它的威力,于是本专辑中将用它来画出相应的数据结构, 请先安装graphviz吧。
先上几个图先睹为快吧:
example 1: 把二叉树展开成双向链表