总结
二叉树的种类:(红色为相对常用)
满二叉树:以根节点为第一层,总节点数为2^n-1个的二叉树,即除了叶子节点之外的其他节点都是拥有左右两个节点的二叉树。特性:每一层的节点都是满的。
完全二叉树:除了最大深度的叶子节点所在的那一层,其他层都达到最大值,并且叶子节点层所有节点从左向右排列,中间没有空节点。特性:除了最深的叶子节点层可能没有满,其他层节点都是满的,并且叶子节点层的节点由左向右排列,中间无空节点。
二叉搜索树:前面两种只有树的结构,这一种除了有结构,还有数值。特性:1.根节点的左子树上的所有节点值都小于根节点;根节点的右子树上的节点值都大于根节点。2.使用中序遍历将节点数值遍历到数组中得到的是完全递增的数组。
平衡二叉搜索树:具有二叉搜索树的全部特性,并且拥有自己的特性:以每个节点为根节点的左右子树的高度差不大于一。
遍历方法:(红色为相对常用)
前序(先序)遍历:按照中→左→右的顺序来进行遍历。
中序遍历:按照左→中→右的顺序来进行遍历。
后序遍历:按照左→右→中的顺序来进行遍历。
层序遍历:将二叉搜索树从第一层开始从左向右依次遍历。
规律:对于前中后序遍历来说,根节点在前中后哪个位置遍历就是什么序遍历。
思路补充:
要充分了解遍历方法以及二叉搜索树的特性,利用特性来进行解题,比如对于力扣538.把二叉搜索树转换为累加树,根据二叉搜索树和前序遍历的特性,就可以使用类似逆前序遍历的方法,使遍历的值是从大到小排列。
在前中后序遍历中,要保证左右节点调用的循环的参数的统一性,避免除了节点之外的其他参数不统一导致的错误。