【代码随想录】刷题笔记Day17

前言

浑浑噩噩开学两周,上课加各种杂事以及搞点竞赛,国庆回来后工作和追求卓越的压力又上来了,又有点经济压力,还是想赶紧找实习,刷题和八股文得赶紧跟上

二叉树种类

满二叉树

  • 只有度为0的结点和度为2的结点,并且度为0的结点在同一层上
  • 深度为k,有2^k-1个节点的二叉树
  • 【代码随想录】刷题笔记Day17_第1张图片

完全二叉树

  • 除了最底层节点可能没填满外,其余每层节点数都达到最大值,最底层从左到右填
  • 最底层为第 h 层(h从1开始),则该层包含 1~ 2^(h-1) 个节点
  • 【代码随想录】刷题笔记Day17_第2张图片

二叉搜索树

  • 若不空,左小右大,子树也是搜索树
  • 【代码随想录】刷题笔记Day17_第3张图片

平衡二叉搜索树

  • AVL(Adelson-Velsky and Landis),空树或它的左右两个子树的高度差的绝对值不超过1,左右两个子树都是一棵平衡二叉树
  • 【代码随想录】刷题笔记Day17_第4张图片

二叉树的存储方式

链式存储

  • 【代码随想录】刷题笔记Day17_第5张图片

顺序存储

  • 【代码随想录】刷题笔记Day17_第6张图片

二叉树的遍历方式 

深度优先遍历

  • 递归法(常用,借助栈使用递归),迭代法
  • 【代码随想录】刷题笔记Day17_第7张图片

广度优先遍历

  • 层次遍历:一般使用队列来实现

二叉树的定义

  • struct TreeNode {
        int val;
        TreeNode *left;
        TreeNode *right;
        TreeNode(int x) : val(x), left(NULL), right(NULL) {}
    };

后言

先把二叉树的简单概念放这,供以后刷题的时查阅一下,二叉树的题好多...基础一定要牢固

你可能感兴趣的:(代码随想录刷题笔记,笔记,leetcode,算法,数据结构,职场和发展)