最近做了leetcode上树的模型的一些题目,总结了几个特点:
1.树相关的题目的解法:
(1)递归:
很多树相关的题目都可以用递归来解决,但是递归的话我感觉时间会稍长一点,但是代码写出来比较简单而且简洁,好像也更好理解一点。
(2)非递归:
非递归解法通常借助堆栈或者队列来完成,前中后序 => 堆栈, 层次遍历或按层的 => 队列;
有的时候这两个会混在一起使用;
2.二叉搜索树的相关题目
和中序遍历有关
3.特点
二叉树还有个很有意思的特点,二叉树的节点可以(按照某种顺序)被放进stack、queue、vector中,然后对这些节点重新重新构造树的结构。