lintcode——二叉树总结

来源:互联网 发布:ubuntu查看目录大小 编辑:程序博客网 时间:2024/06/04 19:56


    在这个专题里对二叉树遍历的几道题最基础的东西了,后面的题目基本上都是在遍历的基础上进行一些数据的保存、判断、划分等操作。

   不得不说对于二叉树的问题,递归是最好用的了!!!以前学习递归的的时候也没怎么应用,感觉理解的不是很透彻,通过做这个专题的题目,自己也搜了很多关于递归的定义理解的东西加深了对递归算法的了解:

递归算法解决问题的特点:
(1) 递归就是在过程或函数里调用自身。
(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口(我觉得这一步很重要!)。
(3) 递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。
(4) 在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。

我觉得递归真的是非常好用:大问题的解决化成小问题,小问题再化成更小的问题,一步步递推下去,得到小规模问题的结果后再逐步回溯,也就是“归”的过程~~

    这个专题我觉得最有意思的题目是把排序数组转换为高度最小的二叉搜索树,不到让我了解了什么是二叉搜索树,而且在写代码的过程中充分运用了二分和递归结合的思想,巧妙!    

   关于二叉树的存放问题,用到了栈、队列、向量,算是在做树的题目中顺带着把栈和队列的操作具体应用了一下~~~


0 0
原创粉丝点击