lintcode——二叉树总结



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

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

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

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

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值