一文带你初识二叉树

73 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第二十二天,点击查看活动详情

二叉树概念

  • 二叉树:每个节点最多只能有两个子节点的一种形式

  • 二叉树的子节点分为左节点和右节点

    image-20220910092540471

  • 满二叉树:该二叉树的所有叶子节点都在最后一层,并且节点总数= 2^n^ -1 , n 为层 数

    image-20220910092744037

  • 完全二叉树:该二叉树的所有叶子节点都在最后一层或者倒数第二层,而且最后一层 的叶子节点在左边连续,倒数第二层的叶子节点在右边连续

    image-20220910092946580

二叉树遍历

前序遍历:==先输出父节点==,再遍历左子树和右子树

中序遍历:先遍历左子树,==再输出父节点==,再遍历右子树

后序遍历:先遍历左子树,再遍历右子树,==最后输父节点==

父节点输出位置判断是属于哪一个序遍历

二叉树遍历步骤(前、中、后序)

image-20220910101429183

  1. 创建一个二叉树

  2. 前序遍历

    1. 先输出当前节点(初始为根节点开始遍历)
    2. 判断==左子节点==是否为空,为空,则递归继续前序遍历
    3. 判断==右子节点==是否为空,为空,则递归继续前序遍历
  3. 中序遍历

    1. 若当前节点的==左子节点==不为空,则递归中序遍历
    2. 输出当前节点
    3. 若当前节点的==右子节点==不为空,则递归中序遍历
  4. 后续遍历

    1. 若当前节点的==左子节点==不为空,则递归后序遍历
    2. 若当前节点的==右子节点==不为空,则递归后序遍历
    3. 输出当前的节点