• 二叉树


    一、树的遍历:

    1. 树的先序、中序、后序遍历(非递归)(递归)
    2. 层次遍历
    3. zigzag遍历(非递归)

    二、树的反序列化

    1. 给出前序和中序,求出二叉树
    2. 给出后序和中序,求出二叉树

    三、树的路径:

    1.  输出树的所有路径:(前序遍历,深度遍历的特例)
    2. 二叉树中的最大路径和
    3. 路径求和等于给定值(两个递归求解)
    4. 路径总和(递归)【用列表的深拷贝】

    四、树的高度

    1. 最大深度:(递归)
    2. 树的直径长度【对每个节点进行一个左子树高度加右子树高度的计算】
    3. 求树的坡度(递归,注意实例变量和静态变量的使用)
    4. 判断一棵树是否为高度平衡二叉树

    五、两颗树

    1. 判断一颗树是否为另外一颗的子树:【在判断是否一样树之上还加一层循环】(递归加循环
    2. 判断两颗树是否一样。(递归)
    3. 寻找重复的子树

    六、树【栈】

    1. 求树的所有路径和:
    2. 交换左右子树
    3. 求树的每层平均值
    4. 二叉树的层次遍历
    5. 二叉树的第二小节点
    6. 最长同值路径:
    7. 判断一棵树是否为高度平衡二叉树

    七、树【DFS】

    1. 二叉树的反向层次遍历
    2. 最长同值路径
    3. 找到出现最多值的节点。【递归+Counter字典】

    八、树总

    1. 树的深度
    2. 交换左右子树
    3. 求树的每层平均值
    4. 判断两颗树是否相同(递归)
    5. 输出树的所有路径:(前序遍历,深度遍历的特例)
    6. 二叉树的层次遍历:(BFS)
    7. 将有序数组转换为二叉搜索树(递归)
    8. 求树的坡度(递归,注意实例变量和静态变量的使用)
    9. 把二叉搜索树转换为累加树(递归,注意静态变量和实例变量的运用)
    10. 二叉树中的第二小的节点(BFS、DFS)
    11. 判断一棵树是否为高度平衡二叉树:(递归)
    12. 路径求和(两个递归求解):
    13. 路径总和(递归)【用列表的深拷贝】
    14. 二叉树剪枝(递归)
    15. 输出二叉树:【递归,重点在建立一个矩阵】
    16. 二叉树展开为链表【递归,重点在原地改动树的结构,需要额外的栈来存储树节点原本的值】
    17. 寻找重复的子树
    18. 验证二叉搜索树【递归,左子树所有节点都小于根节点,右子树所有节点都大于根节点,则返回正。】用两个循环或者两个递归
    19. 二叉树最大宽度【遍历整颗树,每个节点标记序号,每层最大节点减去最小节点的值+1----为结果】
    20. 建立所有不同的二叉搜索树【思想:遍历+递归,用生成器实现】
    21. 所有可能的完整二叉树【遍历+递归】
    22. 二叉搜索树-----依次输出最小值【迭代器】
    23. 二叉树增加一行【BFS实现】
    24. 二叉树最近公共祖先

     九、二叉搜索树:

    1. 二叉搜索树的后序遍历序列
  • 相关阅读:
    web前端之Javascript的输出
    python编码问题
    python面试题1
    机器学习三剑客补充
    JavaScript设计模式与开发实践 组合模式
    JavaScript设计模式与开发实践 命令模式
    JavaScript设计模式与开发实践 发布—订阅模式
    JavaScript设计模式与开发实践 迭代器模式
    JavaScript设计模式与开发实践 代理模式
    JavaScript设计模式与开发实践 策略模式
  • 原文地址:https://www.cnblogs.com/Lee-yl/p/10480109.html
Copyright © 2020-2023  润新知