写一个简单的二叉树,简单增加节点和循环的算法

         二叉树(Binary Tree)是树的一种常见形式。二叉树的任意结点最多可以有两个子结点,也可以只有一个或者没有子结点。因此二叉树的度数一定小于等于2。二叉树结点的两个子结点,一个被称为左子结点,一个被称为右子结点。二叉树严格区分左右子结点,两个子结点的顺序是固定的,即使只有一棵子树也要区分左右。

public class BinaryTree {TreeNode root;public BinaryTree() {this.root = null;}public void insert(int val) {root = insertRecursive(root, val);}private TreeNode insertRecursive(TreeNode root, int val) {if (root == null) {return new TreeNode(val);}if (val < root.val) {root.left = insertRecursive(root.left, val);} else if (val > root.val) {root.right = insertRecursive(root.right, val);}return root;}public void preOrderTraversal(TreeNode node) {if (node != null) {System.out.print(node.val + " ");preOrderTraversal(node.left);preOrderTraversal(node.right);}}public static void main(String[] args) {BinaryTree tree = new BinaryTree();tree.insert(5);tree.insert(3);tree.insert(7);tree.insert(2);tree.insert(4);System.out.println("Preorder traversal of binary tree is:");tree.preOrderTraversal(tree.root);}class TreeNode {int val;TreeNode left;TreeNode right;public TreeNode(int val) {this.val = val;this.left = null;this.right = null;}}
}

一个二叉树类 BinaryTree 和一个节点类 TreeNode ,实现了二叉树的插入操作和先序遍历算法。

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

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

相关文章

Latex学习(从入门到入土)3

第一章&#xff1a;排版矩阵 在LaTeX中&#xff0c;排版矩阵可以使用amsmath宏包提供的几种不同环境来实现。以下是一些常用的环境和它们的使用方式&#xff1a; ### 使用matrix环境 matrix环境是最基础的矩阵环境&#xff0c;它创建一个带有边框的矩阵&#xff0c;元素默认…

精益思维驱动人工智能革新:理论到实践的跃迁之旅

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已成为引领未来的关键力量。在这个变革的时代&#xff0c;如何将精益思维与人工智能相结合&#xff0c;推动AI从理论走向实践&#xff0c;成为行业内外关注的焦点。本文&#xff0c;天行健精益生产顾问将分享…

Macbook M1 Pro使用brew安装Docker并安装Nacos【超详细图解】

目录 一、安装 Docker 二、修改 Docker 镜像地址 三、拉取镜像-举例 Nacos 1.拉取镜像 2.查看本地镜像 3.删除镜像 四、启动容器 1.启动 Nacos 容器&#xff1a; I.方式一【推荐】 II.方式二【懒人推荐】 2.访问 Nacos Web 控制台 3.进入容器和退出容器 五、配置…

【算法基础3】并查集

并查集 现在我们要完成两个操作&#xff1a; 1.将两个集合合并 2.询问两个元素是否在一个集合当中 这两个操作的时间复杂度均为O(n)&#xff0c;但我们使用并查集的话&#xff0c;可以在近乎O(1)的时间内完成这一操作。 基本原理&#xff1a;每个集合用一棵树来表示&#xff0…

麻将的玩法及技巧

麻将是一种古老而受欢迎的博弈游戏&#xff0c;其玩法和技巧多种多样&#xff0c;因地区和玩家习惯的不同而有所差异。以下是一些通用的麻将玩法和技巧&#xff1a; 一、玩法 洗牌与码牌&#xff1a;玩家双手搓动牌&#xff0c;使牌均匀而无序地运动&#xff0c;称为“洗牌”。…

Hive:正则regexp_extract函数

语法: regexp_extract(string subject, string pattern, int index) 返回值: string 说明&#xff1a; 将字符串subject按照pattern正则表达式的规则拆分&#xff0c;返回index指定的字符。 第一参数&#xff1a; 要处理的字段 第二参数: 需要匹配的正则表达式 第三个参数: …

Java处理CSV类库:OpenCSV

一&#xff1a;CSV简介 Comma-Separated Values(CSV), 因分隔符没有严格指定规范标准&#xff0c;可以使用逗号&#xff0c;也可以使用其他字符&#xff08;如制表符\t、分号;等&#xff09;&#xff0c;所以CSV也称为 逗号分隔值或者字符分隔值。csv文件是使用纯文本来存储表…

【学习笔记】耳分解与无向图的双连通性

感觉之前对于这方面的理解还是不够深入。 1.1 1.1 1.1 在无向图 G ( V , E ) G(V,E) G(V,E)中&#xff0c;有一个子图 G ′ ( V ′ , E ′ ) G(V,E) G′(V′,E′)&#xff08;不一定是导出子图&#xff0c;其实只看 V ′ V V′就好了&#xff09;&#xff0c;若简单路径或简单…

R、Python的Copula变量相关性分析及AI大模型应用

在工程、水文和金融等各学科的研究中&#xff0c;总是会遇到很多变量&#xff0c;研究这些相互纠缠的变量间的相关关系是各学科的研究的重点。虽然皮尔逊相关、秩相关等相关系数提供了变量间相关关系的粗略结果&#xff0c;但这些系数都存在着无法克服的困难。例如&#xff0c;…

leetcode748-Shortest Completing Word

题目 给你一个字符串 licensePlate 和一个字符串数组 words &#xff0c;请你找出 words 中的 最短补全词 。 补全词 是一个包含 licensePlate 中所有字母的单词。忽略 licensePlate 中的 数字和空格 。不区分大小写。如果某个字母在 licensePlate 中出现不止一次&#xff0c…

MSSQL 命令行操作说明 sql server 2022 命令行下进行配置管理

说明&#xff1a;本文的内容是因为我在导入Access2019的 *.accdb 格式的数据时&#xff0c;总是出错的背景下&#xff0c;不得已搜索和整理了一下&#xff0c;如何用命令行进行sql server 数据库和用户管理的方法&#xff0c;作为从Access2019 直接导出数据到sql server 数据库…

linux限权

shell命令以及运行原理 什么是shell命令&#xff1a; 将使用者的命令翻译给核心&#xff08;kernel&#xff09;处理。同时&#xff0c;将核心的处理结果翻译给使用者。 shell就相当于操作系统外的一层外壳 其实就是登录linux时的一个可执行程序&#xff08;进程&#xff09…

滴滴春招深度揭秘:2024最全Spring Microservices Architecture面试题大全,每位开发者必备!99%的应聘者都强烈推荐!

在2024年&#xff0c;随着技术的不断演进和市场需求的快速变化&#xff0c;微服务架构已经成为现代软件开发的核心。滴滴作为领先的科技公司之一&#xff0c;特别重视在其庞大的交通网络服务平台中采用微服务架构&#xff0c;以提高系统的可扩展性、灵活性和维护性。微服务架构…

安装kali虚拟机

第一步&#xff1a;安装vmware 安装到最后&#xff0c;会提示输入序列号 安装成功后的图标 第二步&#xff1a;创建一个虚拟主机 创建了一个虚拟机 第三步&#xff1a;给虚拟机安装系统 安装系统&#xff0c;都必须有 系统镜像文件 一般系统镜像文件的后缀是 .iso 第一步&a…

利用CNN-Bigru-Attention模型输电线路故障诊断(Python代码,TensorFlow框架,)

效果视频&#xff1a;利用CNN-Bigru-Attention模型输电线路故障诊断(Python代码&#xff0c;TensorFlow框架&#xff0c;压缩包带有数据集和代码&#xff0c;解压缩可直接运行)_哔哩哔哩_bilibili 售后包免费远程协助运行&#xff08;用向日葵或者todesk软件协助&#xff09; …

Java中如何生成PDF文件的缩略图

在Java中生成PDF文件的缩略图可以使用Apache PDFBox库。以下是一个简单的示例代码来实现这个功能&#xff1a; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.rendering.PDFRenderer; import org.apache.pdfbox.tools.imageio.ImageIOUtil;import j…

主机连接本地VM虚拟机中的Ubuntu系统

虽然说本文特指Ubuntu系统&#xff0c;但过程原理也可以运用到类似的虚拟机上 前言 假设本机IPV4地址为10.26.231.99 1. 查看主机IP winr → 输入cmd → 点击确定&#xff0c;打开CMD → 输入ipconfig查看本地IPV4地址&#xff08;记下来&#xff09; 2. 虚拟机添加自动桥…

GoogleNet网络训练集和测试集搭建

测试集和训练集都是在之前搭建好的基础上进行修改的&#xff0c;重点记录与之前不同的代码。 还是使用的花分类的数据集进行训练和测试的。 一、训练集 1、搭建网络 设置参数&#xff1a;使用辅助分类器&#xff0c;采用权重初始化 net GoogleNet(num_classes5, aux_logi…

Midjourney常见玩法及prompt关键词技巧

今天系统给大家讲讲Midjourney的常见玩法和prompt关键词的一些注意事项&#xff0c;带大家入门&#xff5e;&#xff08;多图预警&#xff0c;建议收藏&#xff5e;&#xff09; 一、入门及常见玩法 1、注册并添加服务器&#xff08;会的童鞋可跳过&#xff5e;&#xff09; …

实在智能携AI Agent智能体亮相2024年度QCon全球软件开发大会

4月11日-13日&#xff0c;以“全面进化”作为2024年度主题的「QCon全球软件开发大会暨智能软件开发生态展」在北京隆重举行。作为AI准独角兽和超自动化头部企业&#xff0c;实在智能应邀出席发表《面向办公自动化领域的AI Agent建设思考与分享》演讲及圆桌交流&#xff0c;展示…