leetcode刷题-二叉树01

代码随想录二叉树part01|二叉树的理论基础

  • 理论基础
    • `种类`:
    • `存储方式`:
    • `二叉树的遍历`:
    • `二叉树定义方式`:

理论基础

代码随想录文档讲解

种类

  1. 满二叉树,节点数量: 2 n − 1 2^n-1 2n1
  2. 完全二叉树,从左到右是满的
  3. 二叉搜索树:左子树的所有节点都小于中间节点的值,右子树的所有节点都大于中间节点的值。(对树的结构没有要求,只要求节点的值)
  4. 平衡二叉搜索树:左子树和右子树高度的绝对值的差不超过1【map、set等树都是】

存储方式

  1. 链式存储
    链表指向它的左右孩子
  2. 线式存储
    下标设定一个数,作为数组的索引
    给你一个节点的下标,找它左右孩子的下标: 2 i + 1 、 2 i + 2 2i+1、2i+2 2i+12i+2

二叉树的遍历

与图论中的两种遍历方式一致:深度优先搜索,广度优先搜索

  1. 深度优先:前、中、后序遍历
    前序:根左右、后序:左右根、中序:左根右
  2. 广度优先:层序遍历
  3. 迭代法遍历二叉树:非递归的方法;上述两种遍历方式都存在递归形式和非递归形式

二叉树定义方式

struct TredNode{int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(NULL), right(NULL) {}
}
class TreeNode:def __init__(self, val, left = None, right = None):self.val = valself.left = leftself.right = right

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/23821.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB~索引使用与优化

Study by: https://docs.mongoing.com/indexeshttps://www.cnblogs.com/Neeo/articles/14325130.html#%E5%85%B6%E4%BB%96%E7%B4%A2%E5%BC%95 作用 如果你把数据库类比为一本书,那书的具体内容是数据,书的目录就是索引,所以索引…

NIST 电子病历中的疫苗部分的认证

美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)对电子病历的认证 分几个阶段,每个阶段又分门诊和住院,然后又分若干模块。下面是疫苗模块的数据提交的测试脚本。 170.302k_Immuniza…

数据提取:构建企业智能决策的基石

在数字化时代,数据已成为企业最宝贵的资产之一。而数据提取,作为数据分析和智能决策的第一步,正日益成为企业构建竞争优势的关键环节。本文将探讨数据提取的重要性、方法以及它如何为企业的智能决策奠定坚实基础。 一、数据提取的重要性 洞…

Rust 实现 kvmsample

GitHub - BillXiang/kvmsample at rust cd kvmsample make cp test*.bin kvmsample-rust cd kvmsample-rust cargo run两个vm中分别执行IO_OUT和IO_IN: KVM_EXIT_IO_OUT addr:16 data:84 KVM_EXIT_IO_IN addr 16 KVM_EXIT_IO_OUT addr:16 data:85 KVM_EXIT_IO_IN addr 16 KVM_…

多线程..

线程定义:线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中实际运作单位。简单来说,应用软件中相互独立,可以同时运作的功能。 多线程作用:有了多线程,我们就可以让程序…

【机器学习300问】108、什么是多项式回归模型?

一、多项式回归是什么 (1)举例说明 假设你经营着一家农场,想要根据土地面积来预测作物的产量。如果你只用线性模型(即),你可能会发现它并不足以描述实际的产量情况,因为实际产量可能会随着土地…

NLP--机器学习

1.定义:机器学习是一种从经验中学习关于某类任务和该任务执行性能衡量参数,并且性能衡量参数会随着经验的增加而提高的计算机程序。机器如何做我们能做的事,这是早期关于机器学习思想的起源。机器学习和程序编码最大的区别之一就是可以在没有…

java国际化配置文件如何使用UTF8

1.直接设置SpringMessage的编码 import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.context.MessageSource; import org.springframework.context.annotation.Bean; import org.springframework.context.support.ReloadableResou…

Acwing 786.第K个数

Acwing 786.第K个数 题目描述 786. 第k个数 - AcWing题库 运行代码 #include <iostream> #include <algorithm> using namespace std; const int N 100010; int q[N];int main() {int n, k;scanf("%d%d", &n, &k);for (int i 0; i < n; …

opencv进阶 ——(十三)基于三角剖分实现换脸

换脸的关键在于人脸对齐&#xff0c;人脸对齐主要包括以下几点&#xff1a; 1、人脸可能存在一定的角度&#xff0c;因此需要先将倾斜方向进行对齐 2、大小对齐&#xff0c;将模板人脸的大小缩放到同一大小 3、要想有好的效果&#xff0c;关键点选取很重要 4、人脸对齐后&a…

#04 Stable Diffusion与其他AI图像生成技术的比较

文章目录 前言1. Stable Diffusion2. DALL-E3. GAN&#xff08;生成对抗网络&#xff09;4. VQ-VAE比较总结 前言 随着人工智能技术的飞速发展&#xff0c;AI图像生成技术已成为创意产业和科研领域的热点。Stable Diffusion作为其中的佼佼者&#xff0c;其性能和应用广受关注。…

黑马python-JavaScript

1.JavaScript的定义&#xff1a; JavaScript是运行在浏览器端的脚步语言&#xff0c;是由浏览器解释执行的、简称js。它能够让网页和用户有交互功能&#xff0c;增加良好的用户体验效果 2.使用方式&#xff1a; 1.行内式&#xff08;主要用于事件&#xff09; <input type&q…

开发常用软件

开发相关 代码编译 Visual Studio 2019 Visual Studio 2022 代码测试工具 LINQPad Premium 5 LINQPad 7 打包工具 Advanced Installer 反编译工具 ILSpy dnSpy spy 数据库相关 SQLite Expert Professional 5 DLL扫描工具 depends 界面设计 SvgToXaml Materi…

【大数据】计算引擎:Spark核心概念

目录 前言 1.什么是Spark 2.核心概念 2.1.Spark如何拉高计算性能 2.2.RDD 2.3.Stage 3.运行流程 前言 本文是作者大数据系列中的一文&#xff0c;专栏地址&#xff1a; https://blog.csdn.net/joker_zjn/category_12631789.html?spm1001.2014.3001.5482 该系列会成体…

JAVA技术设计模式

设计模式结构图 设计原则 职责单一原则接口隔离原则 一个类对另一个类的依赖应该建立在最小的接口上 依赖倒置面向接口编程,参数或变量,依赖注入,使用父类 开闭原则 对扩展开放(对提供方),对修改关闭(对使用方) 用抽象构建框架,用实现扩展细节 里氏替换原则…

java中的双列集合(Map,HashMap,TreeMap,LinkedHashMap)

双列集合的特点 双列集合一次需要存一对数据&#xff0c;分别为键和值 键不能重复&#xff0c;值可以重复 键和值是一一对应的&#xff0c;每一个键只能找到自己对应的值 键值这个整体 &#xff0c;我们称之为“键值对”或者“键值对对象”&#xff0c;在Java中叫做“Entry对象…

CAPL如何发送一条UDP报文

UDP作为传输层协议,本身并不具有可靠性传输特点,所以不需要建立连接通道,可以直接发送数据。当然,前提是需要知道对方的通信端点,也就是IP地址和端口号。 端口号是传输层协议中最显著的特征,传输层根据它来确定上层绑定的应用程序,以达到把数据交给上层应用处理的目的。…

Elementary OS 7.1简单桌面调整

Elementary OS的Pantheon桌面环境提供了一种非常独特和直观的用户体验。默认情况下&#xff0c;Pantheon桌面并没有提供传统的窗口最小化、最大化按钮。但是可以通过安装和使用特定的工具来调整和自定义这些设置。 可以通过以下步骤来启用窗口的最小化和最大化按钮&#xff1a…

【Pytorch】计算机视觉项目——卷积神经网络TinyVGG模型图像分类(模型预测)

介绍 这篇文章是《【Pytorch】计算机视觉项目——卷积神经网络TinyVGG模型图像分类&#xff08;如何使用自定义数据集&#xff09;》的最后一部分内容&#xff1a;模型预测。 在本文中&#xff0c;我们将介绍如何测试模型的预测效果——让已训练好模型对一张新的图片进行分类&a…

Docker面试整理-什么是Docker Hub?

Docker Hub 是一个由 Docker, Inc. 维护的公共镜像注册服务,它允许用户分享、存储和管理 Docker 镜像。Docker Hub 提供了一个中心化的资源库,用户可以从中拉取(下载)和推送(上传)镜像,这使得它成为分享和分发容器应用的重要平台。 Docker Hub 的主要功能包括: 镜像存储…