Binary Tree Inorder Traversal @ LeetCode

【Java练习题】Java 程序的输出 | 第十四套(构造函数) 作者主页:海拥 作者简介:优快云全栈领域优质创作者、HDZ核心组成员、蝉联C站周榜前十 粉丝福利:粉丝群 每周送四本书,每月送各种小礼品(搪瓷杯、抱枕、鼠标垫、马克杯等) 直接跳到末尾 去领取资料 难度级别: 简单 程序 程序一 1) 以下程序的输出是什么? class Helper { private int data; private Helper() { data = 5; } } public class Test { publ 阅读详情

看了好久的维基百科关于二叉树的解说、csdn相关博文的理解,及stone老师的帮忙下,终于写出能够打印出结果的完整程序啦。本文部分代码来自http://blog.youkuaiyun.com/linhuanmars/article/details/20187257 支持原创。其它部分是自己在stone老师的帮忙下理解后完整调试出的。


先贴leetcode的原题链接地址:https://oj.leetcode.com/problems/binary-tree-inorder-traversal/

题目意思很好理解,就是要实现中序遍历。但是最后注明使用递归算法较琐碎,建议让我们使用迭代。偶是小菜鸟,这里先使用递归实现哈~


解题思路:

要实现中序遍历,所以完整程序包含如下几点

1、创建二叉树  public void createBinaryTree(TreeNode root){}

2、二叉树是由结点构成的(即TreeNode),所以创建个TreeNode 类,即 public  class TreeNode{}

3、从维基百科里了解到二叉树结点通常通过数组或者线性表来存储,我这里采用数组来存储结点,即ArrayList<Integer>,所以开头要import java.util.ArrayList;

4、前3个步骤完成之后,现在可以创建中序遍历方法啦,刚刚第3步说用ArrayList来存储二叉树结点,所以这么写中序遍历方法 public ArrayList<Integer> inordertraversal(TreeNode root){}


完整程序如下:

package tree;
import java.util.ArrayList;


public class Inorder_traversal {
private TreeNode root = null;
private ArrayList<Integer> res;

private Inorder_traversal(){
root = new TreeNode(1,1);
}

//创建二叉树
private void createBinaryTree(TreeNode root){
TreeNode newNodeB = new TreeNode(2,2);
TreeNode newNodeC = new TreeNode(3,3);


root.right = newNodeB;

root.right.left = newNodeC;

}
//二叉树是由结点构成,所以定义结点结构TreeNode
private class TreeNode{

private int key = 0;
private int data = 0;
private TreeNode left = null;
private TreeNode right = null;

private TreeNode(int key,int data){
this.key = key;
this.data = data;
this.left = null;
this.right = null;

}
}

//创建中序遍历方法,用ArrayList<Integer> 存储结点,这部分代码来自http://blog.youkuaiyun.com/linhuanmars/article/details/20187257 
private ArrayList<Integer> inordertraversal(TreeNode root){
res = new ArrayList<Integer>();
helper(root,res);
return res;

}

private void helper(TreeNode root,ArrayList<Integer> res){
if (root == null)
return ;
else {
helper(root.left,res);
res.add(root.data);
helper(root.right,res);
}
}




public static void main(String[] args){
Inorder_traversal bt = new Inorder_traversal();
bt.createBinaryTree(bt.root);
bt.inordertraversal(bt.root);
int count = bt.res.size();
for (int i=0; i<count; i++){
System.out.print(bt.res.get(i)+" ");
}
}
}


零样本缺陷检测新体验:用AnomalyGPT大模型快速搭建智能质检系统(附Win10适配指南) 本文详细介绍了如何利用AnomalyGPT大模型在Windows 10系统上快速搭建零样本工业缺陷检测系统。通过实战指南,涵盖从环境部署、模型准备到工程化落地的全过程,包括将模型封装为API服务、接入工业相机以及开发可视化监控看板,为制造业智能质检提供了一套高效、低门槛的本地部署解决方案。 阅读详情

相关推荐

AI算力瓶颈与系统优化实战指南

AI算力瓶颈已成为制约人工智能发展的关键因素,特别是在处理transformer类模型时,传统的冯·诺依曼架构面临严重的'内存墙'问题。通过硬件加速、系统优化和算法改进的三级策略,可以有效提升资源利用率。在嵌入式AI领域,结合量化、剪枝和专用指令集扩展等技术,能在资源受限设备上实现高效推理。这些优化方法在自动驾驶、工业视觉等场景中已展现出显著价值,推动AI应用从云端向边缘迁移。随着AI算力需求的持续增长,掌握系统优化技能将成为开发者的核心竞争力。

weixin_32597009的博客 342

使用 Helper class 访问一个类的私有变量

TMyClass = class private FMyName: string; public end; 上面是一个类的声明,有一个私有字段 FMyName; 根据 Delphi 的语法,如果我继承这个类,在继承的类里面要访问 FMyName: TMyClass2 = class(TMyClass) public constructor Create; end; TMyClass2.constructor; begin FMyName := 'pcplayer'; end; 假设.

pcplayer的博客 1081

YOLOv5s模型训练全流程解析:从数据准备到实战检测

本文详细解析了YOLOv5s模型训练的全流程,涵盖从环境搭建、数据准备与格式转换,到模型训练、参数调优及实战检测的完整步骤。文章提供了具体的代码示例和常见问题解决方案,旨在帮助开发者,特别是新手,高效掌握YOLOv5s模型训练的核心技术,并成功应用于实际检测任务中。

weixin_29041767的博客 334

[leetcode]Binary Tree Inorder Traversal @ Python

原题地址:http://oj.leetcode.com/problems/binary-tree-inorder-traversal/ 题意:二叉树的中序遍历。这道题用递归比较简单,考察的是非递归实现二叉树中序遍历。中序遍历顺序为:左子树,根,右子树。如此递归下去。 解题思路:假设树为:                 1                /   \            ...

weixin_34146410的博客 74

双系统下 ubuntu 20.04 突然 开机黑屏报错 hdaudioC0D2: unable to configure disabling

今天在开实验室开双系统台式机时,ubuntu 20.04 系统下,突然在某次关机后再开机时,本来启动好好的,但是在进行图形化启动时,本来应该是显示输入账号和密码时,直接黑屏报错了,内容为 hdaudioC0D2: unable to configure disabling ,这里是记录了报错的解决全过程

qq_48717745的博客 991

开源Agent Skill让AI画图不再翻车:从数据到专业图表全流程

在人工智能与数据可视化交叉领域,让模型直接生成图表往往伴随字体乱码、坐标轴密集、配色失调等高频问题。Agent Skill作为一种可复用的能力封装机制,将专业绘图流程固化为标准化操作手册,从数据特征识别、图表类型决策到代码生成与渲染校验形成完整闭环。它不再依赖临时提示词的一次性发挥,而是让AI按领域专家的思维执行任务,显著提升出图质量与稳定性。这种能力在数据分析报告、运营日报、论文插图等场景具有广泛实用价值,尤其适用于需要快速产出规范化图表的工作流。本文即从这一技术范式出发,介绍一个GitHub上获得2.5

weixin_33851429的博客 972

[leetcode] 105. Construct Binary Tree from Preorder and Inorder Traversal @ python

原题 Given preorder and inorder traversal of a tree, construct the binary tree. Note: You may assume that duplicates do not exist in the tree. For example, given preorder = [3,9,20,15,7] inorder = [9,3,...

闲庭信步 171

安卓风控对抗实战:如何用AOSP定制ROM绕过Momo、AIDA64等检测(从环境搭建到设备画像)

本文详细解析了如何通过定制AOSP ROM绕过Momo、AIDA64等安卓风控检测工具的设备指纹识别。从环境搭建到硬件参数修改,再到内核级特征混淆,提供了一套完整的底层对抗方案,显著提升设备伪装通过率。

weixin_30687051的博客 490

[LeetCode] 105. Construct Binary Tree from Preorder and Inorder Traversal @ python

一.题目: 从前序遍历和中序遍历还原整棵树. 二.解题思路: 理解前序遍历和中序遍历的特点. 代码如下: # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # ...

tmfighting的博客 135

AWS SQS跨账户访问失败排查指南

在使用AWS SQS(Simple Queue Service)时,跨账户访问是常见的业务场景。例如,账户A的应用程序向队列发送消息,账户B的消费者从队列拉取消息。尽管AWS官方文档明确支持此类配置,但在实际应用中,由于权限模型的复杂性,开发者和运维人员常会遇到“策略已配置但无法接收消息”的问题。通过本文的逐步排查指南,您不仅可以解决当前问题,还能深入理解AWS跨账户访问的权限模型。接收方账户的用户或角色必须同时附加IAM策略,显式授权操作目标队列。尽管策略看似允许接收方操作,实际测试中却返回空消息或。

探索云原生与智能化驱动下的安全运维新范式。关注DevSecOps、可观测性、AIOps等前沿领域,与您共赴技术前沿。 459

Unity 实战项目 ☀️| 只用一个脚本做一个 刮刮乐 案例,一不小心刮出来一个女朋友!【学习娱乐一下】

只用一个脚本做一个刮刮乐,一不小心刮出来一个女朋友!【学习娱乐一下!】

努力前行,总会成为自己心中的那道光 23万+

[leetcode]Construct Binary Tree from Preorder and Inorder Traversal @ Python

原题地址:http://oj.leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/ 题意:根据二叉树的先序遍历和中序遍历恢复二叉树。 解题思路:可以参照 http://www.cnblogs.com/zuoyuan/p/3720138.html 的思路。递归进行解决。 代码: #...

weixin_34240657的博客 86

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Binary Tree Inorder Traversal -- LeetCode

原题链接: http://oj.leetcode.com/problems/binary-tree-inorder-traversal/  通常,实现二叉树的遍历有两个常用的方法:一是用递归,二是使用栈实现的迭代方法。下面分别介绍。 递归应该最常用的算法,相信大家都了解,算法的时间复杂度是O(n), 而空间复杂度则是递归栈的大小,即O(logn)。代码如下:  public ArrayLis

Code Ganker 2万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

[LeetCode] Binary Tree Inorder Traversal

[Problem] Given a binary tree, return the inorder traversal of its nodes' values. For example: Given binary tree {1,#,2,3}, 1 \ 2   / 3 return [1,3,2]. Note: Recursive solution is triv

1.02^365的成长裂变 3706

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

LeetCode-94. Binary Tree Inorder Traversal [C++][Java]

Given therootof a binary tree, returnthe inorder traversal of its nodes' values.

贫道绝缘子的博客 226

【leetcode 中序遍历】Binary Tree Inorder Traversal

1、题目 2、分析 3、代码

wepon的专栏 1736

【LeetCode】【Python】Binary Tree Inorder Traversal

Given a binary tree, return the inorder traversal of its nodes' values. For example: Given binary tree {1,#,2,3}, 比较简单,就是转化成中序遍历即可,访问顺序是中序遍历左子树,根节点,中序遍历右子树 Python编程的时候需要注意,要在返回单一数字的时候加

monkeyduck的专栏 3627

94. Binary Tree Inorder Traversal

【代码】94.BinaryTreeInorderTraversal。

qq_40844444的博客 634

【LeetCode】 94 Binary Tree Inorder Traversal

题目描述 Given the root of a binary tree, return the inorder traversal of its nodes' values. Example 1: Input: root = [1,null,2,3]Output: [1,3,2] Example 2: Input: root = [1,2]Output: [2,1] Example 3:Input: root = []Output: [] Constraints: T...

Vergegenkunft_的博客 212

【LeetCode】94. Binary Tree Inorder Traversal 解题报告

转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/51471280Subject 出处:https://leetcode.com/problems/binary-tree-inorder-traversal/ Given a binary tree, return the inorder traversal of its nodes'

crazy_jack 1万+

LeetCode Binary Tree Inorder Traversal

不用递归来实现树的中序遍历。

DRFish 1393

Binary Tree Inorder Traversal ---LeetCode

https://leetcode.com/problems/binary-tree-inorder-traversal/解题思路:这道题是中序遍历一棵二叉树。首先回顾一下二叉树的遍历: 可以简单分为两种方法,深度优先遍历和广度优先遍历。 深度优先遍历:L、D、R分别表示遍历左子树、访问根结点和遍历右子树。先序遍历(preorder traversal)二叉树的顺序是DLR, 中序遍历(inorde

likexin的博客 546

【Leetcode】94. Binary Tree Inorder Traversal

递归的过程是,从树根开始一路向左,同时记录住一路经过的节点,直到向左走到null后回退一步,打印节点,接着向其右子树拐过去,继续重复一路向左,直到右子树遍历完后,回退到树根的上一个节点,打印之,再拐入右子树继续重复。所以用栈来模拟的话就是,先从树根出发一路向左,同时将路径上所有节点按顺序入栈,直到走到null,走到null后,栈里弹出来一个节点就可以访问之了,因为其左子树是空。概括起来就是:树根出发,无前驱就向右走,有前驱则找前驱,前驱无桥则搭桥向左走,前驱有桥则拆桥向右走。法3:Morris遍历。

数学、算法爱好者的博客 296

LeetCode94——Binary Tree Inorder Traversal

题目链接 Given a binary tree, return theinordertraversal of its nodes' values. Example: Input: [1,null,2,3] 1 \ 2 / 3 Output: [1,3,2] Follow up:Recursive solution is trivial, c...

星辰的博客 427

LeetCode94. Binary Tree Inorder Traversal

题目  给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 考点 stack 递归 中序遍历:左-根-右 思路 ref:二叉树的前中后和层序遍历详细图解(递归和非递归写法) 1.递归 若根节点为空,返回。左...

Lightmare625 200

Leetcode94. Binary Tree Inorder Traversal

Leetcode94. Binary Tree Inorder Traversal 文章目录Leetcode94. Binary Tree Inorder Traversal解法一 经典递归解法二 基于栈的遍历解法三 Morris Traversal(利用线索二叉树)图解莫里斯方法C++解法 Given a binary tree, return the inorder traversal of...

magic_jiayu的博客 409
上一篇: Java学习笔记之二叉树的节点数、深度
下一篇: Binary Tree Preorder Traversal @leetcode
samnancy
博客等级 码龄19年 4粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值