当前位置: 首页 > news >正文

LeetCode hot 100 解题思路记录(二)

前情提要

本文是个人学习的粗糙笔记,仅记录思路和图解(跳过了困难题,等之后再弄)

视频看的是油管上的neetcode

二叉树

二叉树的中序遍历(简单)

中序遍历:访问顺序为左子树 → 根节点 → 右子树

思路一:迭代,遍历+栈

              列表和栈初始化、将当前节点所有左子节点入栈、弹出栈顶节点记录值、转到右子树

思路二:Morris中序遍历(不想看,问问是否要多个思路来考核再来看)

二叉树的最大深度(简单)

思路一:深度优先搜索DFS

思路二:广度优先搜索BFS

翻转二叉树(简单)

思路:从下往上进行左右子树的翻转,用递归算法

对称二叉树(简单)

算法一:递归,双指针

p指针和q指针,最开始都指向树的根节点,随后p指针右移则q指针左移,p指针左移则q指针右移

算法二:迭代,队列

根节点初始化时加入队列两次

每次提取两个节点,比较值,再比较两节点的左右子节点的值(注意顺序)

当队列为空或检测到值不等时结束

二叉树的直径(简单)

对于任一节点,其直径等于左子树的最大深度 + 右子树的最大深度+2

二叉树的层序遍历

广度优先搜索BFS

结果列表、层列表、queue

有序数组转换为二叉搜索树(简单)

知识点:平衡二叉树,左节点>根节点>右节点

思路:中序遍历,选择中间位置左边/右边/任意一边为根节点

   int mid = (left + right) / 2;
   int mid = (left + right + 1) / 2;
   int mid = (left + right + rand.nextInt(2)) / 2;

代码步骤:

  1. 取中点:选当前区间中间位置的值作为根节点

  2. 递归左右

    • 左子树 = 左边区间(left 到 mid-1

    • 右子树 = 右边区间(mid+1 到 right

  3. 终止条件:当 left > right 时返回 null

验证二叉搜索树

5<4, 所以不能只比较相邻左右子节点

比较时有左右边界

算法有两种:递归、中序遍历

二叉搜索树中第K小的元素

思路:中序遍历

左子树小于当前节点数,右子树大于当前节点数

中序遍历顺序是左子树——根节点——右子树

二叉树的右视图

思路:广度优先搜索BFS

           在二叉树层序遍历的基础上,对每层得到的数组取最右边的数值即可(图中的Res)

二叉树展开为链表

http://www.dtcms.com/a/390816.html

相关文章:

  • Redis 三种服务架构详解:从主从复制到集群模式
  • 若依前端vue基本函数介绍
  • 五,设计模式-生成器/建造者模式
  • 大模型的水印方法《A Watermark for Large Language Models》解读
  • ipa文件怎么去除包体内的插件在线签名工具步骤
  • 盟接之桥EDI软件:中国制造全球化进程中的连接挑战与路径探索
  • 【从零开始的大模型原理与实践教程】--第四章:大语言模型
  • docker gitlab jenkins 部署
  • 【数据结构】堆的概念
  • STL 简介:C++ 标准库的 “瑞士军刀”
  • 数据结构 静态链表的实现(算法篇)
  • [新启航]燃料喷射孔孔深光学 3D 轮廓测量 - 激光频率梳 3D 轮廓技术
  • Python 数据分析详解(第一期):环境搭建与核心库基础
  • 云手机中混合架构具体是什么?
  • 设计模式-桥接模式详解
  • Web 抓包全指南 Web抓包工具、浏览器抓包方法、HTTPS 解密
  • 在Prompt IDE中编写提示词时,如何确保提示词的质量和效果?
  • OpenCV :基于 Lucas-Kanade 算法的视频光流估计实现
  • PyQt6之容器布局
  • Linux网络:HTTPS协议
  • 【Linux】进程概念(三):深入剖析操作系统学科的进程状态理论体系与 Linux 系统下的浅度睡眠、深度睡眠、停止、僵尸、死亡等具体进程状态
  • java面试Day2 | mysql优化、索引、事务、并发事务、MVCC、主从同步、分库分表
  • 怎么用文字生成视频:从本土到海外的软件工具选择指南
  • Git远程与本地仓库关联指南(含推送冲突解决方案)
  • uniapp u-popup弹窗展示时禁止底部内容滚动,禁止滑动遮罩层滚动
  • 赛灵思 XCVU13P-2FIGD2104E XilinxFPGA VirtexUltraScale+
  • 基于非线性MPC的自动驾驶路径跟踪与避障控制器设计(Matlab实现)
  • 使用云手机进行烈火一刀挂机多开的优势
  • 造成云手机黑屏的原因有哪些?
  • 智能电视玩机攻略_开启设备隐藏ADB 自由安装第三方应用