力扣刷题笔记

本文探讨了二叉树遍历(前序、中序、后序)的应用,如构造二叉树、深度计算、展开为链表等,还涉及空间效率提升、递归设计、重复子树检测以及序列化与反序列化。重点讲解了如何通过递归解决实际问题,以及位运算在其中的巧妙应用。
摘要由CSDN通过智能技术生成

二叉树重点题目

二叉树算法有两大类,一类是遍历二叉树的类型,一类是分解子问题的类型

前者运用二叉树的递归遍历框架即可;后者关键在于明确递归函数的定义,然后利用这个定义。

105.从前序与中序遍历序列构造二叉树

106.从中序与后序遍历序列构造二叉树

654.最大二叉树

注:首先遍历存储数组在一个Hashmap中,比每次调用都遍历一次效率高。

“用空间换取时间”

111.二叉树的最小深度(DFS 以及 BFS)待补充

当树的递归有返回值时,需要考虑返回的值怎么“带回”上一层。并且结束递归时是在根节点上操作的。

114.二叉树展开成链表

注:二叉树的递归可以在三个位置进行操作分为:前序 中序 后序 

并且递归需要站在全局的角度思考  需要思考两个重要环节:1、递归结束的条件;2、递归中间普遍步骤;

116.填充每个节点的下一个右侧节点指针

考虑每一个每次递归该结点需要做的工作——也许不只需要考虑两个左右子节点,可能需要跨越多层考虑!!!

222.完全二叉树的节点个数

a二叉树路径可以看成二进制的路线即(0指左节点,1指右节点)

在此基础上可以对最后一排使用二分查找,注意完全二叉树的节点个数规则!!

位运算:

<<

>>

>>=

&

|

 652.寻找重复子树

后续遍历——先遍历左子节点,再遍历右子节点,最后遍历父节点 ,所以可以同时考虑“左右子树的情况”(仔细体会)。

当需要观察整个树的情况时,可以将其变成字符串考虑,即 序列化二叉树。

当需要考虑是否有重复的情况时,考虑set和map(可以在任何数据结构中使用)。

297.二叉树的序列化与反序列化

字符串可以用固定字符隔离开比如 “," 用.split(",")函数可以分割成数组。

序列化二叉树可以采用前序遍历。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值