hot 100二叉树算法

二叉树:

  • 数据结构:

    • 满二叉树:
      • 只有度为0和度为2的节点,而且度为0的在同一层;
      • 深度:k,对应节点:2^k - 1【深度从1开始】;
    • 完全二叉树
      • 除了最底层可能没有填满,其余都达到最大值;
      • 最底层也是从左边向右集中,可能包含1 - 2^(k - 1)个节点;
    • 搜索树:
      • 分别对左右子树的大小有限制;
      • 当作一个有序数组处理;
    • 平衡二叉搜索树:
      • 对高度有限制,高度差不超过1;
    • 存储方式
      • 链表【指针,左右指针】
      • 顺序存储【堆,数组】;
    • 遍历方式:
      • 深度优先遍历【前、中、后序遍历,借助栈【递归】】
      • 广度优先遍历【层遍历【空指针标记法】,借助队列【先进先出】】
  • 经典题型:

    • 递归算法:

      1. 递归的参数和返回值;
      2. 终止条件;
      3. 单层递归的逻辑;
    • 根据二叉树的属性

      • 对称性
      • 最大、最小深度
        • 由上到下【前序遍历,由集中走向分支】
        • 由下到上【后序遍历,由分支走向集中】
      • 是否平衡【通过高度差】;
      • 节点数量
      • 找所有路径
      • 左叶子之和【关键点在条件】
      • 左下角的值【由最大深度 + 左叶子】
      • 路径总和;
    • 二叉树的修改和构造:

      • 构造、翻转、合并二叉树
    • 二叉搜索树的属性【当作有序数组处理 or 一般二叉树】

    • 二叉搜索树的修改:

      • 构造、插入、删除、修建
    • 总结:

      • 二叉树的构造,都是前序遍历【从集中到分支】,先构造中间节点;
      • 普通二叉树的属性,都是后序遍历【从分支到集中】,使用返回值做计算;
      • 二叉搜索树的属性,使用中序【不然白瞎了有序性】;
posted @ 2025-07-26 20:31  烟雨断桥  阅读(41)  评论(0)    收藏  举报