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

算法工程题(中序遍历)

*  题意说明:
*  给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。
*
*  示例 1:
*  输入:root = [1,null,2,3]
*  输出:[1,3,2]
*
*  示例 2:
*  输入:root = []
*  输出:[]
*
*  示例 3:
*  输入:root = [1]
*  输出:[1]
*
*  提示:
*  树中节点数目在范围 [0, 100] 内
*  -100 <= Node.val <= 100
*  进阶: 递归算法很简单,你可以通过迭代算法完成吗?
*
*  Related Topics
*  栈
*  树
*  深度优先搜索
*  二叉树
*
* @Date 2023/8/30 10:07
* @Version 1.0
*/
public class InorderTraversal {public static void main(String[] args) {// 测试代码入口}public static List<Integer> inorderTraversal(TreeNode root) {return null;}
}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;}
}

使用递归实现:

public class InorderTraversal {public static void main(String[] args) {// 测试代码入口//创建测试数据 二叉树TreeNode treeNode = new TreeNode();treeNode = new TreeNode(1);treeNode.left = new TreeNode(2);treeNode.right = new TreeNode(3);System.out.println(inorderTraversal(treeNode));}//通过递归的方式来进行实现中序排序public static List<Integer> inorderTraversal(TreeNode root) {ArrayList<Integer> list = new ArrayList<>();dfs(list,root);return list;}public static void dfs(List<Integer> list ,TreeNode root){//如果为null则直接返回if(root  == null){return;}//遍历左子树dfs(list,root.left);//添加根list.add(root.val);//遍历右子树dfs(list,root.right);}
}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;}
}

相关文章:

算法工程题(中序遍历)

* 题意说明&#xff1a; * 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 * * 示例 1&#xff1a; * 输入&#xff1a;root [1,null,2,3] * 输出&#xff1a;[1,3,2] * * 示例 2&#xff1a; * 输入&#xff1a;root [] * 输出&#xff1a;[] * *…...

jsch网页版ssh

使用依赖 implementation com.jcraft:jsch:0.1.55Server端代码 import com.jcraft.jsch.Channel; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; import java.io.InputStream; import java.io.OutputStream; import java.util.concurrent.TimeUnit; import o…...

教程i.MX8MPlus开发板SPI转CAN操作

飞凌嵌入式OKMX8MP-C核心板有两路原生CAN总线&#xff0c;但用户在开发产品时可能需要用到更多的CAN&#xff0c;这该如何解决呢&#xff1f;今天小编将为大家介绍一种SPI转CAN的方法&#xff0c;供各位工程师小伙伴参考。 说明 OKMX8MP-C核心板有两路原生的SPI总线&#xff0c…...

Docker中容器的随机命名方式

使用 docker 创建容器时&#xff0c;如果没有用 --name 指定&#xff0c;docker 会为用户选择一个名称&#xff0c; 格式是两个带有下划线的单词&#xff0c;如xxx_yyyy 其相关的实现在此处 pkg/namesgenerator/names-generator.go[1] 源码中有两个数组&#xff0c;第一个是一个…...

大数据Flink实时计算技术

1、架构 2、应用场景 Flink 功能强大&#xff0c;支持开发和运行多种不同种类的应用程序。它的主要特性包括&#xff1a;批流一体化、精密的状态管理、事件时间支持以及精确一次的状态一致性保障等。在启用高可用选项的情况下&#xff0c;它不存在单点失效问题。事实证明&#…...

数学中的自由与我们的生活

数学中的这些自由可以帮助我们养成很多优秀的品格。具体来说&#xff0c;知识的自由使我们变得足智多谋&#xff0c;让我们可以根据问题的具体情况选择恰当的工具和方法。探索的自由使我们在集体讨论时敢于大声发言&#xff0c;积极提问&#xff0c;让我们在为探索发现而欢呼雀…...

8 python的迭代器和生成器

概述 在上一节&#xff0c;我们介绍了Python的模块和包&#xff0c;包括&#xff1a;什么是模块、导入模块、自定义模块、__name__、什么是包、创建包、导入包等内容。在这一节中&#xff0c;我们将介绍Python的迭代器和生成器。在Python中&#xff0c;迭代器是一个非常重要的概…...

Git的基本使用笔记——狂神说

版本控制 版本迭代&#xff0c; 版本控制( Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史&#xff0c;方便查看更改历史记录&#xff0c;备份以便恢复以前的版本的软件工程技术。 实现跨区域多人协同开发 追踪和记载一个或者多个文件的…...

【小程序】外部二维码扫码打开微信小程序并跳转到指定页面

外部二维码扫码打开微信小程序并跳转到指定页面 您需要使用微信提供的跳转链接和相关参数。以下是实现的步骤&#xff1a; 生成跳转链接&#xff1a;使用以下链接格式生成跳转链接&#xff0c;其中APPID是您的小程序的 AppID&#xff0c;PATH是您要跳转的页面路径&#xff0c…...

bazel安装

安装 首先安装一下 Bazel 环境。参考 https://bazel.build/install。我是在 Ubuntu 上实验的&#xff0c;所以安装过程参考的是&#xff1a;https://bazel.build/install/ubuntu&#xff0c;有很多种安装方法&#xff0c;我选择的是使用二进制安装程序。这个具体参考的又是 ht…...

Typescript的class语法[类]的操作和应用

TypeScript 是一种面向对象的编程语言&#xff0c;它扩展了 JavaScript&#xff0c;为其添加了类型系统和其他一些特性。TypeScript 的 class 语法可以让开发者更加方便地使用面向对象的编程方式。本文将详细介绍 TypeScript 的 class 语法的操作和应用&#xff0c;并提供代码案…...

OPENCV实现暴力特征匹配

# -*- coding:utf-8 -*- """ 作者:794919561 日期:2023/9/1 """ import cv2 import numpy as np# 读...

揭秘亚马逊Amazon测评,掌握细节和技巧,提升产品销量和评论数量

亚马逊是全球最大的跨境电商平台&#xff0c;拥有全球65个国家的几十个网站。对于跨境卖家来说&#xff0c;亚马逊是最值得选择的平台之一。 亚马逊的八大站点分别是美国、加拿大、墨西哥、欧洲、澳大利亚、日本、中东和巴西。 美国站点是全球最大的零售市场&#xff0c;拥有…...

Linux线程互斥

目录 一、线程不安全 1.线程不安全现象 2.线程不安全程序的特质 3.线程不安全程序的原因 二、线程互斥 1.基本概念 2.锁 &#xff08;1&#xff09;认识锁 &#xff08;2&#xff09;互斥锁的使用 &#xff08;3&#xff09;代码的改造 3.锁的本质 &#xff08;1&a…...

【仿写spring之ioc篇】三、检查是否实现了Aware接口并且执行对应的方法

Aware接口 Aware接口中只是设置了对应的set方法&#xff0c;目前只定义了三个Aware 以BeanNameAware为例 package com.ez4sterben.spring.ioc.factory.aware;/*** bean名字清楚** author ez4sterben* date 2023/08/31*/ public interface BeanNameAware {/*** 设置beanName* …...

C++ 异常处理

C 异常​(Exception)是指在程序运行时产生的特殊情况&#xff0c;例如&#xff0c;尝试除以零的操作。异常提供了一种转移程序控制权的方式&#xff0c;异常处理涉及到三个关键字&#xff1a;try、catch、throw。 throw: 当问题出现时&#xff0c;程序会抛出一个异常。这是通过…...

OJ练习第157题——单词拆分

单词拆分 力扣链接&#xff1a;139. 单词拆分 题目描述 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用。 示例 …...

若依tab-content面板失效、使用load的解决方法(附详细步骤)

【版权所有&#xff0c;文章允许转载&#xff0c;但须以链接方式注明源地址&#xff0c;否则追究法律责任】【创作不易&#xff0c;点个赞就是对我最大的支持】 前言 仅作为学习笔记&#xff0c;供大家参考 总结的不错的话&#xff0c;记得点赞收藏关注哦&#xff01; 思路&…...

2023年03月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题&#xff1a;拼点游戏 C和S两位同学一起玩拼点游戏。有一堆白色卡牌和一堆蓝色卡牌&#xff0c;每张卡牌上写了一个整数点数。C随机抽取n张白色卡牌&#xff0c;S随机抽取n张蓝色卡牌&#xff0c;他们进行n回合拼点&#xff0c;每次两人各出一张卡牌&#xff0c;点数大者获…...

Android安卓实战项目(12)—关于身体分析,BMI计算,喝水提醒,食物卡路里计算APP【支持中英文切换】生活助手类APP(源码在文末)

Android安卓实战项目&#xff08;12&#xff09;—关于身体分析&#xff0c;BMI计算&#xff0c;喝水提醒&#xff0c;食物卡路里计算APP【支持中英文切换】生活助手类APP&#xff08;源码在文末&#x1f415;&#x1f415;&#x1f415;&#xff09; 一.项目运行介绍 B站演示…...

这次咱们来拆解PFC二维浆岩直剪案例。这个案例有意思的地方在于它展示了颗粒材料与刚性墙体接触面的剪切行为,咱们边看代码边分析剪切曲线的门道

PFC案例9&#xff0c;浆-岩二维直剪&#xff0c;包含代码源文件、代码解释、曲线分析先看模型搭建的关键代码段&#xff1a; ;生成浆体颗粒 ball distribute ... ;创建上下剪切盒 wall generate id 1 vertices 0 0 1 0 1 1 0 1 wall generate id 2 vertices 0 0.2 1 0.2;设置…...

DeerFlow开源项目部署与实践指南:从环境准备到生产落地

DeerFlow开源项目部署与实践指南&#xff1a;从环境准备到生产落地 【免费下载链接】deer-flow DeerFlow is a community-driven framework for deep research, combining language models with tools like web search, crawling, and Python execution, while contributing ba…...

WPF拖拽实战避坑指南:从DragDropEffects到QueryContinueDrag,解决拖拽后鼠标事件失效的诡异问题

WPF拖拽实战避坑指南&#xff1a;从DragDropEffects到QueryContinueDrag&#xff0c;解决拖拽后鼠标事件失效的诡异问题 当你在WPF项目中实现拖拽功能时&#xff0c;是否遇到过这样的场景&#xff1a;拖拽操作完成后&#xff0c;控件的MouseMove事件突然"失灵"&#…...

PyTorch 2.5镜像使用指南:从环境搭建到模型训练完整流程

PyTorch 2.5镜像使用指南&#xff1a;从环境搭建到模型训练完整流程 1. 镜像概述与环境准备 PyTorch 2.5镜像是一个预配置的深度学习开发环境&#xff0c;集成了PyTorch框架和CUDA工具包&#xff0c;支持GPU加速计算。这个开箱即用的解决方案能帮助开发者快速搭建AI开发环境&…...

Mars3D新手必读:从零开始的开发者实战手册

1. 初识Mars3D&#xff1a;数字地球的新世界 第一次打开Mars3D的场景编辑器时&#xff0c;那种震撼感至今难忘——就像小时候第一次转动地球仪&#xff0c;但这次是用代码在操控整个星球。作为国内领先的Web3D地理信息引擎&#xff0c;Mars3D用浏览器就能呈现毫米级精度的地形地…...

字节MidScene 手机自动化

1 框架介绍 Midscene 是一个可通过自然语言描述目标和步骤&#xff0c;自动规划并操作用户界面、执行自动化的框架。 框架地址&#xff1a;https://midscenejs.com/zh/支持端&#xff1a;Android、iOS、鸿蒙、桌面、浏览器核心特性 自然语言控制跨平台自动化同时支持智能执行…...

STM32架构解析:哈佛与冯·诺依曼的工程实践

STM32处理器架构解析&#xff1a;哈佛结构与冯诺依曼结构的工程实践 1. 计算机体系结构基础 1.1 冯诺依曼体系结构 冯诺依曼体系结构&#xff08;Von Neumann architecture&#xff09;是现代计算机的基础设计范式&#xff0c;其核心特征包括&#xff1a; 统一存储结构 &am…...

如何用DiffSynth Studio实现AI舞蹈动作生成与舞台效果可视化:完整指南

如何用DiffSynth Studio实现AI舞蹈动作生成与舞台效果可视化&#xff1a;完整指南 【免费下载链接】DiffSynth-Studio DiffSynth Studio 是一个扩散引擎。我们重组了包括 Text Encoder、UNet、VAE 等在内的架构&#xff0c;保持了与开源社区模型的兼容性&#xff0c;同时提高了…...

实时风控延迟突增2300ms?揭秘Python部署中被低估的asyncio事件循环阻塞陷阱

第一章&#xff1a;实时风控延迟突增2300ms&#xff1f;揭秘Python部署中被低估的asyncio事件循环阻塞陷阱在某次线上实时风控服务发布后&#xff0c;P99延迟从平均120ms骤升至2420ms&#xff0c;监控图表呈现尖锐毛刺。排查发现&#xff0c;问题并非源于模型推理或数据库慢查询…...

3分钟上手!FrankMocap让普通摄像头变身专业动捕设备

3分钟上手&#xff01;FrankMocap让普通摄像头变身专业动捕设备 【免费下载链接】frankmocap A Strong and Easy-to-use Single View 3D HandBody Pose Estimator 项目地址: https://gitcode.com/gh_mirrors/fr/frankmocap 在数字内容创作与交互设计领域&#xff0c;3D动…...