我的算法笔记六 | 二叉树

在进入今天的二叉树的笔记之前,先简单回顾一下最近算法的学习内容。用了7周的时间,将基本的数据结构都过了一遍,并针对每个数据结构进行了练习。整体来说,对自己的进度还是非常满意的。另外这一遍刷题也明显手感要好一些了。努力不会白费!

距离当初设立的flag ,时间正好过半。刷题46道。整体进度还行。

Flag:从4.11 --6.30 刷100题

在这里插入图片描述

本文总结二叉树的几种常见题型

二叉树

结构描述:

Class Node {
	V value;
	Node left;
	Node right;
}

二叉树的先序、中序、后序遍历

先序:任何子树的处理顺序都是,先头节点、再左子树、然后右子树

中序:任何子树的处理顺序都是,先左子树、再头节点、然后右子树

后序:任何子树的处理顺序都是,先左子树、再右子树、然后头节点

常见案例

1 递归方式实现二叉树的先序、中序、后序遍历

1)理解递归序 (同一个位置都会经过三次,具体如下图的箭头)
2)先序、中序、后序都可以在递归序的基础上加工出来
3)第一次到达一个节点就打印就是先序、第二次打印即中序、第三次即后序

在这里插入图片描述

2 非递归方式实现二叉树的先序、中序、后序遍历

1)任何递归函数都可以改成非递归
2)自己设计压栈的来实现

3 实现二叉树的按层遍历

1)其实就是宽度优先遍历,用队列

2)可以通过设置flag变量的方式,来发现某一层的结束(看题目)

  • [ 实现二叉树的按层遍历 ]

4 二叉树的序列化和反序列化

1)可以用先序或者中序或者后序或者按层遍历,来实现二叉树的序列化

2)用了什么方式序列化,就用什么样的方式反序列化

3)中序遍历无法实现序列化和反序列化

本周打卡进度

 第六周进度: 应刷 14 道,实刷 7 道。 用时将近6小时。
 其中部分时间用在看视频,对应部分的练习题还没做。
 
 截止到本周把基本的数据类型都已经学完啦!!!下周开始进入贪心和动态规划的学习。新篇章

在这里插入图片描述

[ 将单向链表按某值划分成左边小、中间相等、右边大的形式 ] 打卡 2022-05-17

[ 链表改序问题 ]

[ 深度复制带有rand指针的链表 ]

[ 两个无环的单链表相交的第一个节点 ] 打卡 2022-05-21

[ 有环单链表的第一个相交节点 ] 打卡 2022-05-21

[ 判断链表是否有环 ] 打卡 2022-05-21

[ 二叉树某一节点X祖先节点的交集]

[ 递归和非递归方式实现二叉树的前序遍历 ] 打卡 2022-05-21

[ 递归和非递归方式实现二叉树的中序遍历 ] 打卡 2022-05-21

[ 递归和非递归方式实现二叉树的后序遍历 ] 打卡 2022-05-21

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值