1、迭代法中,⼀般⼀起操作两个树都是使⽤队列模拟类似层序遍历,同时处理两个树的节点,这种⽅式最好理解,如果⽤模拟递归的思路的话,要复杂⼀些。
2、⼤多是⼆叉搜索树的题⽬,其实都离不开中序遍历,因为这样就是有序的。
3、在⼀个有序序列求最值的时候,不要定义⼀个全局遍历,然后遍历序列更新全局变量求最值。因为最值可能就是int或者 longlong的最⼩值。
推荐要通过前⼀个数值(pre)和后⼀个数值⽐较(cur),得出最值。
4、在⼆叉树中通过两个前后指针作⽐较,会经常⽤到。
5、需要明确:在有序数组求任意两数最⼩值差等价于相邻两数的最⼩值差。
同样本题也需要⽤pre节点记录cur节点的前⼀个节点。(这种写法⼀定要掌握)
6、现在已经讲过了⼏种⼆叉树了,⼆叉树,⼆叉平衡树,完全⼆叉树,⼆叉搜索树,后⾯还会有平衡⼆叉搜索树。 那么⼀些同学难免会有混乱了,我针对如下三个问题,帮⼤家在捋顺⼀遍:
1、平衡⼆叉搜索树是不是⼆叉搜索树和平衡⼆叉树的结合?
是的,是⼆叉搜索树和平衡⼆叉树的结合。
2、平衡⼆叉树与完全⼆叉树的区别在于底层节点的位置?
是的,完全⼆叉树底层必须是从左到右连续的,且次底层是满的。
3、 堆是完全⼆叉树和排序的结合,⽽不是平衡⼆叉搜索树?
堆是⼀棵完全⼆叉树,同时保证⽗⼦节点的顺序关系(有序)。 但完全⼆叉树⼀定是平衡⼆叉树,堆的排序是⽗节点⼤于⼦节点,⽽搜索树是⽗节点⼤于左孩⼦,⼩于右孩⼦,所以堆不是平衡⼆叉搜索树。