算法训练营day14

ops/2024/10/22 14:26:40/
二叉树理论基础
  1. 种类

    1. 满二叉树,数上只有度为0或2的节点
    2. 完全二叉树,(h - 1)层都满了,h层都集中在左侧若干位置
  2. 存储方式

    1. 链式存储,指针
    2. 顺序存储,数组
  3. 遍历方式

    1. 深度优先
      1. 前序遍历(递归,迭代)
      2. 中序遍历(递归,迭代)
      3. 后序遍历(递归,迭代)
      4. 前中后其实表示的是 中间节点的位置
    2. 广度优先
      1. 层次遍历
  4. 二叉树的定义

    public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode(int val) { this.val = val; }TreeNode(int val, TreeNode left, TreeNode right) {this.val = val;this.left = left;this.right = right;}
    }
    
二叉树的递归遍历

参考144. 二叉树的前序遍历 - 力扣(LeetCode)

递归解法
前序
public static void preOrderIteration(TreeNode head) {if (head == null) {return;}Stack<TreeNode> stack = new Stack<>();stack.push(head);while (!stack.isEmpty()) {TreeNode node = stack.pop();System.out.print(node.value + " ");if (node.right != null) {stack.push(node.right);}if (node.left != null) {stack.push(node.left);}}
}
中序
public static void inOrderIteration(TreeNode head) {if (head == null) {return;}TreeNode cur = head;Stack<TreeNode> stack = new Stack<>();while (!stack.isEmpty() || cur != null) {while (cur != null) {stack.push(cur);cur = cur.left;}TreeNode node = stack.pop();System.out.print(node.value + " ");if (node.right != null) {cur = node.right;}}
}
后序
public static void postOrderIteration(TreeNode head) {if (head == null) {return;}Stack<TreeNode> stack1 = new Stack<>();Stack<TreeNode> stack2 = new Stack<>();stack1.push(head);while (!stack1.isEmpty()) {TreeNode node = stack1.pop();stack2.push(node);if (node.left != null) {stack1.push(node.left);}if (node.right != null) {stack1.push(node.right);}}while (!stack2.isEmpty()) {System.out.print(stack2.pop().value + " ");}}

http://www.ppmy.cn/ops/5514.html

相关文章

新项目应该选mongodb还是postgresql?

文章目录 MongoDBPostgreSQL大数据处理时的优势对比实际使用经验 选择MongoDB还是PostgreSQL作为新项目的数据库&#xff0c;主要取决于项目的具体需求、数据模型、应用场景以及团队熟悉程度等因素。下面将从几个关键角度对两者进行对比分析。 MongoDB 数据模型&#xff1a;Mo…

Docker - 入门基础

原文地址&#xff0c;使用效果更佳&#xff01; Docker - 入门基础 | CoderMast编程桅杆https://www.codermast.com/dev-tools/docker/docker-basic.html Docker架构 Docker 使用的是客户端-服务端&#xff08;C/S&#xff09;架构模式&#xff0c;使用远程 API 来管理和创建…

Flutter 热修复(Shorebird)

Shorebird&#xff1a;https://docs.shorebird.dev/ 我们都知道安卓原生开发&#xff0c;热修复已经不是什么难题。阿里云&#xff0c;腾讯云已经都有现成的SDK可以接入。 然而Flutter开发还一直没有类似热修复的开发库&#xff0c;无意中看到了Shorebird这个平台&#xff0c…

Visual Studio2010源码编译curl_7_60

一、源码解压目录内容 很开心里面可以找到CMakeLists.txt文件&#xff0c;说明可以实用CMake工具进行构建&#xff0c;由于多数开源项目都选择实用CMake作为构建编译工具&#xff0c;大家蝇该都比较熟练了。 二、实用CMake开始构建Visual Studio 2010工程 很顺利整个构建过程没…

【软考】UML中的图之类图

目录 1. 说明2. 图示3. 类图使用方式3.1 对系统的词汇建模3.2 对简单的协作建模3.3 对逻辑数据库模式建模 1. 说明 1.类图&#xff08;Class Diagram&#xff09;展现了一组对象、接口、协作和它们之间的关系。2.在面向对象系统的建模中所建立的最常见的图是类图。3.类图给出系…

docker基础

docker为什么出现 docker和传统虚拟机的对比 docker三要素 docker平台结构 docker常用命令 docker iamges docker search 容器命令 docker ps 镜像分层 容器数据卷 查看数据卷是否挂载成功 读写规则 分布式存储 容错性

移植speexdsp到OpenHarmony标准系统③

speexdsp移植后已提交至openhamrony sig仓库&#xff1a;https://gitee.com/openharmony-sig/contest/tree/master/2022_OpenHarmony_thirdparty/speexdsp 四、将三方库加入到OpenHarmony的编译体系 根据上一步分析结果&#xff0c;编写gn文件&#xff0c;将三方库加入到OpenH…

运行python脚本下载官网安装包进行安装

背景介绍&#xff1a;1.由于公司业务人员window系统没有管理员用户权限&#xff0c;使用的是普通用户权限登陆的&#xff0c;因此不能自己安装软件。但是有时候涉及到软件的大批量更新&#xff0c;人工一个一个的去安装&#xff0c;效率太低&#xff0c;人工成本太高&#xff0…