当前位置:网站首页>二叉树 | 代码随想录学习笔记
二叉树 | 代码随想录学习笔记
2022-08-10 22:23:00 【Begonia_cat】
跟随carl代码随想录刷题
语言:python
本文为笔者学习二叉树的笔记,主要内容来自于代码随想录。
二叉树
二叉树的定义
二叉树的定义与链表差不多,只不过二叉树的节点里多了两个指针:指向左右孩子。
class TreeNode:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
二叉树的形式、平衡二叉树、二叉搜索树
- 二叉树主要有两种
形式【不包含数值】:- 满二叉树
- 一棵二叉树只有
度为0的节点和度为2的节点,并且度为0的节点在同一层上。 - 深度为
k时,有2^k - 1个节点。
- 一棵二叉树只有
- 完全二叉树
- 除了最底层节点可能没填满外,其余每层节点数都达到了最大值。并且最下面一层的节点都集中在该层
最左边的若干位置。若最底层为n层,则该层包含1~2^(h-1)个节点。
堆就是一个完全二叉树
- 除了最底层节点可能没填满外,其余每层节点数都达到了最大值。并且最下面一层的节点都集中在该层
- 满二叉树
- 二叉搜索树
二叉搜索树是有序树- 如果左子树不为空,则左子树上所有节点的值均
小于它的根节点的值。 - 如果右子树不为空,则右子树上所有节点的值均
大于它的根节点的值。
- 平衡二叉树(又称AVL树)
- 是
空树或左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树
红黑树是一种平衡二叉树 - 一定要知道自己所用语言的
常用的容器底层是如何实现的
- 是
二叉树的存储方式
- 两种方式:
链式存储- 用指针
- 元素散落在内存中的各个地址

顺序存储- 用数组
- 元素在内存中是连续分布的

如果父节点的数组下标是
i,那么它的左孩子就是i*2+1,右孩子就是i*2+2链式表示方式便于理解,一般都用链式存储二叉树(所以喔,
数组依然可以表示二叉树)。
二叉树的遍历方式
- 主要有两种遍历方式:
深度优先遍历- 先往深走,遇到叶子节点再往回走
- ️借助
栈实现【栈是递归的一种实现结构】 - 按照
中间节点的遍历顺序,可细分为三种遍历方式:- 前序遍历(递归法,迭代法)
中左右 - 中序遍历(递归法,迭代法)
左中右 - 后序遍历(递归法,迭代法)
左右中
前序、中序、后序递归遍历代码
前序、中序、后序迭代遍历代码
- 前序遍历(递归法,迭代法)
广度优先遍历一层一层地去遍历
️借助
队列实现层次遍历(迭代法)
边栏推荐
- STL-stack
- 商家招募电商主播要考虑哪些内容
- CFdiv2-Beautiful Mirrors-(期望)
- TCP连接过程中如果拔掉网线会发生什么?
- RK3399 platform development series explanation (kernel-driven peripherals) 6.35, IAM20680 gyroscope introduction
- BM7 list entry in central
- LeetCode每日两题01:反转字符串 (均1200道)方法:双指针
- 12 Recurrent Neural Network RNN2 of Deep Learning
- LeetCode Daily Question (1573. Number of Ways to Split a String)
- Introduction to the use of counter instructions in Rockwell AB PLC RSLogix5000
猜你喜欢

DC-8靶场下载及渗透实战详细过程(DC靶场系列)

分享一个后台管理系统可拖拽式组件的设计思路

配电网络扩展规划:考虑使用概率性能源生产和消费概况的决策(Matlab代码实现)

What is Jmeter? What are the principle steps used by Jmeter?

链表相加(二)

Service - DNS forward and reverse domain name resolution service

交换机和生成树知识点
云服务器基于 SSH 协议实现免密登录

VLAN huawei 三种模式

How many threads does LabVIEW allocate?
随机推荐
Fatal error: cstring: No such file or directory
新一代网络安全防护体系的五个关键特征
RK3399 platform development series explanation (kernel-driven peripherals) 6.35, IAM20680 gyroscope introduction
ArcGIS中的坐标系统和投影变换
IM 即时通讯开发如何设计图片文件的服务端存储架构
艺术与科技的狂欢,阿那亚2022砂之盒沉浸艺术季
华为HCIE云计算之Fusion Access桌面云
RecyclerView设置缓存大小
STL-stack
VulnHub之DC靶场下载与DC靶场全系列渗透实战详细过程
MySQL学习笔记(1)——基础操作
ASCII、Unicode和UTF-8
阿里云贾朝辉:云XR平台支持彼真科技呈现国风科幻虚拟演唱会
MySQL学习笔记(2)——简单操作
QT笔记——vs + qt 创建一个带界面的 dll 和 调用带界面的dll
今日睡眠质量记录75分
MySQL: MySQL Cluster - Principle and Configuration of Master-Slave Replication
LeetCode每日两题02:反转字符串中的单词 (均1200道)
虚拟地址空间
带着昇腾去旅行:一日看尽金陵城里的AI胜景