美文网首页
leetcode-day12-二叉树

leetcode-day12-二叉树

作者: 独孤蝴蝶 | 来源:发表于2023-06-22 10:19 被阅读0次

二叉树的理论基础

二叉树的种类

满二叉树:如果一棵树只有度(表示节点拥有的子节点数)为0的结点和度为2的节点,并且度为0的节点在同一层上

完全二叉树:在完全二叉树中,除了底层节点可能没有填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若底层为第h层(h从1开始),则该层包含1~2^(h-1)个节点。

二叉搜索树:它是一个有序数

若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值。left.val < root.val

若它的右子树不空,则右子树上所有结点的值均大于它的根节点的值。right.val > root.val

它的左、右子树也分别为二叉排序树

二叉树的存储方式

链式存储使用指针,顺序存储使用数组

用数组存储如何遍历:

若父节点的数组下标是i,那么左孩子是 i*2+1,右孩子是1*2+2

二叉树的遍历方式

深度优先遍历

前中后指的是中间节点的位置

前序遍历(递归法,迭代法):

中序遍历(递归法,迭代法)

后序遍历(递归法,迭代法)

广度优先遍历

层序遍历(迭代法)一般使用队列来实现

二叉树的定义

二叉树的定义和链表差不多,相对于链表,二叉树的节点里多了一个指针,其有两个指针,指向左右孩子。

二叉树的递归遍历

递归三要素:

1.确定递归函数的参数和返回值

2.确定终止条件

3.确定单层递归的逻辑

二叉树的前序遍历

递归遍历 迭代遍历 统一迭代

二叉树的后序遍历

递归遍历

前序遍历是中左右,后序遍历是左右中,把后序遍历反转一下,你发现是中右左,因此我们自遍历的时候按照前序遍历的那样,只不过先要将左孩子放入,再放右孩子,最终返回结果的时候直接反转

迭代遍历 统一迭代

二叉树的中序遍历

递归遍历 迭代遍历 统一迭代

相关文章

  • 数据结构与算法-二叉树02

    二叉树的定义 二叉树的特点 二叉树的五中基本形态 其他二叉树 斜二叉树 满二叉树 完全二叉树图片.png满二叉树一...

  • 二叉树

    二叉树 高度 深度真二叉树 满二叉树 完全二叉树 二叉树遍历前序 中序 后序层序遍历 翻转二叉树 递归法...

  • 二叉树 基础操作

    二叉树的使用 二叉树结构 先序创建二叉树 DFS 先序遍历二叉树 中序遍历二叉树 后序遍历二叉树 BFS 层次遍历...

  • 树与二叉树

    **树 ** 二叉树 满二叉树 完全二叉树 三种遍历方法 树与二叉树的区别 二叉查找树 平衡二叉树 红黑二叉树

  • 二叉树的宽度优先搜索(层次遍历,BFS)

    二叉树结构: 二叉树宽度优先搜索: 按照二叉树的层数依次从左到右访问二叉树的节点;例如:给定一个二叉树: 按照宽度...

  • 剑指 offer:39、平衡二叉树

    39. 平衡二叉树 题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 解题思路: 平衡二叉树:Wiki:在...

  • Algorithm小白入门 -- 二叉树

    二叉树二叉树构造二叉树寻找重复子树 1. 二叉树 基本二叉树节点如下: 很多经典算法,比如回溯、动态规划、分治算法...

  • 14-树&二叉树&真二叉树&满二叉树

    一、树 二、二叉树 三、真二叉树 四、满二叉树

  • 二叉树的应用

    完美二叉树(满二叉树) 除了最下一层的节点外,每层节点都有两个子节点的二叉树为满二叉树 完全二叉树 除二叉树最后一...

  • 12.树Tree(2)

    目录:1.二叉树的基本概念2.二叉树的性质3.二叉树的创建4.二叉树的遍历 1.二叉树的基本概念 2.二叉树的性质...

网友评论

      本文标题:leetcode-day12-二叉树

      本文链接:https://www.haomeiwen.com/subject/mwjyydtx.html