码迷,mamicode.com
首页 > 其他好文 > 详细

专题总结-二叉树

时间:2017-06-17 18:21:31      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:image   str   过程   自己   时间复杂度   中序   div   情况   专题   

 需要记忆的部分:

      对于二叉树问题,首先需要熟练记住二叉树的前序中序遍历的递归版本和迭代版本,后序也可以看一下,记住BFS的实现过程,归并排序,快速排序,二叉搜索树BST。

总结:

1)二叉树问题基本都是考察递归,几乎所有的二叉树问题时间复杂度都是O(N),空间复杂度和二叉树的高度有关系,因为每一次递归都需要系统内存开一个栈空间进行存储,

2)其中递归函数中使用void的函数是遍历版本,使用有返回值的函数是分治版本,使用全局变量会影响多线程,

3)helper函数是在递归中使用的,因为原有的函数可能只返回一个值,而中间的递归过程需要返回多个值,此时就需要再写一个helper函数

4)在求最大值问题时候,非法情况需要些root = NULL,此时返回一个负无穷大;

再求最小值问题的时候,此时返回一个正无穷大。

写分治自己的感悟是,先想想最简单的情况是怎么写的。

下面是二叉树问题的模板:

1)遍历形式的模板;

技术分享

 

2)divide and conquer模板

技术分享

 

 

 

专题总结-二叉树

标签:image   str   过程   自己   时间复杂度   中序   div   情况   专题   

原文地址:http://www.cnblogs.com/dingxiaoqiang/p/7040837.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!