8.13树的总结(有新知识再更新)

二叉树题目几个重点:


1. 理解递归,优先掌握递归实现

递归三部曲:1.确定递归函数的参数和返回类型;2.确定终止条件 ;3.确定递归逻辑

因为递归一层一层对我来说有点绕,主要感悟就是只针对某一个节点思考,把属于这个节点的逻辑思考清楚(就是确认好单层递归的逻辑就可以了)

递归需不需要返回值的问题,一般情况下:如果需要搜索整棵二叉树,那么递归函数就不要返回值,如果要搜索其中一条符合条件的路径,递归函数就需要返回值,因为遇到符合条件的路径了就要及时返回。


2. 区分深度和高度

  1. 深度(Depth): 一个节点的深度指的是从根节点到该节点的唯一路径上经过的边的数量。根节点的深度为0,它的子节点的深度为1,以此类推。一个节点的深度可以用来表示该节点在树中的层级关系。

  2. 高度(Height): 二叉树的高度是指从根节点到最远叶子节点的最长路径上经过的边的数量。换句话说,它表示了树的最深层级。如果树只有一个节点,那么它的高度为0。对于一个空树,高度通常被定义为-1。

  • 树中的每个节点都有一个深度,但树的高度是所有节点深度中的最大值。

3. 掌握满二叉树,完全二叉树,平衡二叉树,二叉搜索树的性质

满二叉树:

一棵二叉树只有度为0和度为2的节点,且度为0的节点在同一层上,那么此树为满二叉树。

完全二叉树:

除了最底层可能没有填满,其他层都填满了,且最底层的节点分布在左边的若干位置

8.13树的总结(有新知识再更新)_第1张图片

平衡二叉树:

也称为AVL树,每个节点的左右子树高度差的绝对值不超过1

二叉搜索树:

对于每一个节点,它的左子树的值都小于根节点的值,右子树的值都大于根节点的值,同时左子树和右子树也是二叉搜索树

你可能感兴趣的:(算法训练营,算法)