LeetCode 94. 二叉树的中序遍历 Binary Tree Inorder Traversal

告别黑窗口:XShell+X11转发图形化界面的5分钟保姆级教程(附Xming配置) 本文详细介绍了如何使用XShell和X11转发技术快速实现Linux图形化界面的远程访问。通过5分钟快速配置指南,包括服务端设置、客户端工具选择及XShell+Xming的完美配置,帮助用户高效运行GUI应用程序,提升远程工作效率。特别适合需要图形化操作的开发者和运维人员。 阅读详情

题目: LeetCode 94. 二叉树的中序遍历

给定一个二叉树,返回它的中序 遍历。

示例:

输入: [1,null,2,3]
1

2
/
3

输出: [1,3,2]
进阶: 递归算法很简单,你可以通过迭代算法完成吗?

递归算法

import java.util.ArrayList;
import java.util.List;

/// 94. Binary Tree Inorder Traversal
/// https://leetcode.com/problems/binary-tree-inorder-traversal/solution/
/// 二叉树的中序遍历
/// 时间复杂度: O(n), n为树的节点个数
/// 空间复杂度: O(h), h为树的高度
public class Solution094 {

    // Definition for a binary tree node.
    public class TreeNode {
        int val;
        TreeNode left;
        TreeNode right;
        TreeNode(int x) { val = x; }
    }

    public List<Integer> inorderTraversal(TreeNode root) {

        ArrayList<Integer> res = new ArrayList<Integer>();
        inorderTraversal(root, res);
        return res;
    }

    private void inorderTraversal(TreeNode node, List<Integer> list){
        if(node != null){
            inorderTraversal(node.left, list);
            list.add(node.val);
            inorderTraversal(node.right, list);
        }
    }
}

非递归算法

// Definition for a binary tree node.
public class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;
    TreeNode(int x) { val = x; }
}
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;

// Classic Non-Recursive algorithm for inorder traversal
// Time Complexity: O(n), n is the node number in the tree
// Space Complexity: O(h), h is the height of the tree
public class Solution1 {

    public List<Integer> inorderTraversal(TreeNode root) {

        ArrayList<Integer> res = new ArrayList<Integer>();
        if(root == null)
            return res;

        Stack<TreeNode> stack = new Stack<>();
        TreeNode cur = root;
        while(cur != null || !stack.empty()){

            while(cur != null){
                stack.push(cur);
                cur = cur.left;
            }

            cur = stack.pop();
            res.add(cur.val);
            cur = cur.right;
        }
        return res;
    }
}
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;

// Another Classic Non-Recursive algorithm for inorder traversal
// Time Complexity: O(n), n is the node number in the tree
// Space Complexity: O(h), h is the height of the tree
public class Solution2 {

    public List<Integer> inorderTraversal(TreeNode root) {

        ArrayList<Integer> res = new ArrayList<Integer>();
        if(root == null)
            return res;

        Stack<TreeNode> stack = new Stack<>();
        TreeNode cur = root;
        while(cur != null || !stack.empty()){

            if(cur != null){
                stack.push(cur);
                cur = cur.left;
            }
            else{
                cur = stack.pop();
                res.add(cur.val);
                cur = cur.right;
            }
        }
        return res;
    }
}
番外篇 | 复现HIC-YOLOv5,助力小目标物体的检测 在本文中提出了一种改进的YOLOv5算法:HIC-YOLOv5,用于小目标检测,具有更好的性能和较低的计算成本。🌈 阅读详情

相关推荐

微信小程序使用ucharts折线图,有负数显示0刻度线

当数据有负数和正数的时候默认不会显示0刻度线,不方便看出正负对比。

欢迎来到我的博客!在这里,我将分享我在前端开发方面的知识和经验。让我们一起探索前端开发的无限可能! 1581

如何在二叉搜索树中实现有序遍历?

disclosure: This post includes affiliate links; I may receive compensation if you purchase products or services from the different links provided in this article. The InOrder traversal is on...

专业的开发者“讨论” 938

主板USB接口全部失效解决方案(通用串行总线USB控制器有黄色叹号)保姆级教程亲测有效

通用串行总线控制器总是有叹号解决办法 办公室的崩腾时代老电脑,疫情期间没人用,来了开机之后发现鼠标键盘都用不了,本以为是主机放时间长出了问题,后来想起来就百度了“鼠标键盘都失效”的标题,结果发现了“串行总线控制器总是感叹号”的关联问题。正好办公室电脑都装有teamviwer常用来远程办公(在家偷懒)。所以通过远程发现电脑室可以运行的。并在控制面板发现:通用串行总线控制器总是感叹号,插入外设时USB无反应。如图:​ 并且右键选中其中一个,点击最后一个选项:“属性” 可以发现“设备状态”中会提示“由...

xiao_bai_0_0的博客 2万+

94. 二叉树的中序遍历(java实现)--LeetCode

解法1:递归 public List<Integer> inorderTraversal(TreeNode root) { ArrayList<Integer> result = new ArrayList<>(); recursive(root,result); return result; } private void recursive(TreeNode root, ArrayList<

一碗机智的糖浆的博客 541

王道考研操作系统笔记(第一章)附:王道考研408所有PPT和思维导图

学习感想 别人的笔记对你的学习基本上没有用处,容易培养人的惰性,如需ppt和思维导图请拉到最后,有github链接 记笔记并不是一件浪费时间的事情,还有利于多次学习 真心希望大家在学习的过程中记笔记 操作系统 第一章 计算机系统概述 1.1 操作系统 1.1.1 操作系统的概念和功能 概念 操作系统(Operating System, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软

qq_41732756的博客 1万+

ESP32S3开发实战:从Vscode+IDF环境配置到OpenOCD单步调试全流程

本文详细介绍了ESP32S3开发环境的完整搭建流程,重点讲解如何在Vscode中配置ESP-IDF开发框架,并利用OpenOCD工具实现硬件单步调试。内容涵盖从环境准备、工程创建、代码烧录到高级调试技巧的全方位实战指南,旨在帮助开发者快速掌握ESP32S3的高效开发与调试方法。

weixin_29168813的博客 208

94. 二叉树的中序遍历(java)

题目描述 给定一个二叉树的根节点 root ,返回它的 中序 遍历。 首先是递归方法。 访问顺序:先左子树,再根节点,最后右子树; 原理:要先观察最后一个,从后往前进行分析。 随后进入D的右节点,运行inorder(res,root.right);D的右节点为空,函数返回。 到这里当然没结束,会依次返回到B点E点,回到A点。 此时,A的左侧节点已经加入完了,接下来是A的右侧节点。 代码如下 class Solution { public List<Integer> inorderT

大河的博客 2388

YOLOv11 改进 - 注意力机制 | LS-YOLO MSFE 多尺度特征提取模块:并行分支结构增强多尺度感知,优化遥感与小目标检测

本文介绍了一种用于滑坡检测的模型LS-YOLO及其在YOLOv11中的结合应用。LS-YOLO首先构建多尺度滑坡数据集MSLD,为模型训练提供丰富数据。设计了基于高效通道注意力、平均池化和空间可分离卷积的多尺度特征提取模块MSFE,充分提取滑坡特征信息。在解耦头中采用膨胀卷积增加模型感受野。我们将MSFE模块集成进YOLOv11,替换部分原有模块。实验表明,改进后的YOLOv11在数据集中表现出色 。

魔改工程师的博客 870

LeetCode-94. 二叉树的中序遍历(java)

金三银四,又到了刷题月。有时间的话,希望大家还是尽量刷起来咯。帮助往往不是直接体现出来的,但会让你对很多东西的底层实现了解的更深刻。

**My Coding Family** 1036

基于卷积神经网络的遥感图像地物分类

AI:89-基于卷积神经网络的遥感图像地物分类 基于卷积神经网络的遥感图像地物分类是一个令人兴奋的领域,它在环境监测、城市规划、农业、国防等领域具有广泛的应用。深度学习技术为我们提供了更准确、高效的工具,有望在未来进一步提高分类性能。在本文中,我们探讨了卷积神经网络的工作原理、数据准备、模型构建、训练和评估过程,并提供了多个代码示例。此外,我们讨论了地物分类的应用和挑战,以及未来的发展趋势。

一键难忘的博客 2717

工业相机,大恒,面振相机8脚电源线和I/O触发接口线,颜色和接法说明和触发软件设定

上图: 说明一下,工业相机有TTL逻辑电平触发,也有光耦触发等。 这里一般我们用电路板驱动,就用GPIO触发模式, 这里,准备了两个GPIO触发模式,为LINE2,LINE3都可以选择,然后有一个GPIO_GND 如果,你只有一个触发接口,那么如图,选两个就好了。 实际接法如图。 ...

山云的专栏 1万+

tree traversal (树的遍历) - inorder traversal (中序遍历)

tree traversal (树的遍历) - inorder traversal (中序遍历) 1. tree traversal - 树的遍历 二叉树的遍历 (traversing binary tree) 是指从根结点出发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问一次且仅被访问一次。遍历是将二叉树中的结点信息由非线性排列变为某种意义上的线性排列,遍历操作使非线性结构线性化。 ...

程永强 3778

华为OD机试真题 新系统 2026-04-22 Java&Go 实现【小学生班长选举增强版】

9 月份开学第一天,小学某班级进行班长选举活动,班级共有 N 个学生,每个学生最多可投 3 票(对同一个人只能投一票),也可以弃权不投票,大家投票时写上对应学生的名字。 假设学生不存在重名。考虑到部分少数民族名字带分隔,且整体较长,同学在投票时为了方便,允许同学写全称,也可以只写其中的部分连续段。 例如班级里只有 2 个少数民族名称带点的同学:

MISAYAONE的博客 263

leetcode 94.二叉树的中序遍历(binary tree inorder traversal)C语言

leetcode 94.二叉树的中序遍历(binary tree inorder traversal)C语言1.description2.solution2.1 递归2.2 迭代 1.description https://leetcode-cn.com/problems/binary-tree-inorder-traversal/ 给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 输出: [1,3,2] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 2.solutio

hsk6543210的博客 446

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【小白爬Leetcode94】二叉树的中序遍历 Binary Tree Inorder Traversal

【小白爬Leetcode94】二叉树的中序遍历 Binary Tree Inorder Traversal题目方法一 递归方法二 循环 题目 Leetcode94 medium\color{#ffaa00}{medium}medium 点击进入原题链接:二叉树的中序遍历 Binary Tree Inorder Given a binary tree, return the inorder traversal of its nodes’ values. 方法一 递归 最朴素的递归,如果可以用递归这道

weixin_41604040的博客 198

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

LeetCode 94 Binary Tree Inorder Traversal(二叉树中序遍历)

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

nudt_oys的博客 949

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

LeetCode 94:二叉树的中序遍历 Binary Tree Inorder Traversal

题目: 给定一个二叉树,返回它的中序 遍历。 Given a binary tree, return the inorder traversal of its nodes’ values. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? Follow up: Recu...

爱写Bug 307

[LeetCode] 94. Binary Tree Inorder Traversal 二叉树的中序遍历

给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 解法: 二叉树的中序遍历顺序为左-根-右,可以有递归和非递归来解,非递归解法又分为两种,一种是使用栈来接,另一种不需要使用栈的Morris方法。 Morris方...

Fabio的博客 477

LeetCode 94. Binary Tree Inorder Traversal(二叉树的中序遍历)

原题网址:https://leetcode.com/problems/binary-tree-inorder-traversal/ Given a binary tree, return the inorder traversal of its nodes' values. For example: Given binary tree {1,#,2,3}, 1

James Pan 1099

【LeetCode】94. Binary Tree Inorder Traversal-二叉树中序遍历

一、描述: 二、思路: 二叉树中序遍历:1访问左子树;2访问根结点;3访问右子树;如: 中序遍历后得结点序列中,根结点一直处于其左右子树的中间位置,如12、23、13; 递归实现,结点为空时,递归结束。 三、代码: 1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * i

SteveWalker 336

Leetcode 94. 二叉树的中序遍历 Binary Tree Inorder Traversal (Java)

Leetcode 94. 二叉树的中序遍历Binary Tree Inorder Traversal(Medium) ##Hash Table##, ##Stack##, ##Tree## 题解 二叉树的中序遍历 递归 按照左子树=>根节点=>右子树的顺序遍历 时间复杂度:O(n) 每个结点访问一次 空间复杂度为层数 class Solution { public List<Integer> inorderTraversal(TreeNode root) {

qq_42411921的博客 230

LeetCode 94. Binary Tree Inorder Traversal 二叉树的中序遍历

题目

zhangzhetaojj的博客 249

leetcode-94. Binary Tree Inorder Traversal 二叉树的中序遍历

Given a binary tree, return the inorder traversal of its nodes' values. Example: Input: [1,null,2,3] 1 \ 2 / 3 Output: [1,3,2] Follow up: Recursive solution is tri...

别说话写代码的博客 393

leetcode94 Binary Tree Inorder Traversal 非递归二叉树中序遍历

中序遍历的定义是:首先中序遍历左子树,接着遍历根节点,最后中序遍历右子树 根据这个思路我们就可以试着写出非递归版本的程序。所用的数据结构自然就是栈,首先将根节点入栈,当把左子树中序遍历完了以后,把根节点出栈,再中序遍历右子树。 我们定义节点出栈的过程就是遍历该节点,初始状态我们先让根节点入栈。 由于我们首先遍历的是左子树,所以我们首先不停地进行栈顶元素左孩子入栈操作,直到栈顶元素没有左...

LOVETEDA的博客 230

LeetCode-94二叉树的中序遍历(Binary Tree Inorder Traversal)

LeetCode-145 Given a binary tree, return the inorder traversal of its nodes’ values. Example Input: [1,null,2,3]   1     \      2  &nbs...

V2beach的博客 231

LeetCode 94. Binary Tree Inorder Traversal 二叉树的中序遍历 C++

LeetCode 94. Binary Tree Inorder Traversal 二叉树的中序遍历 C++ Given a binary tree, return theinordertraversal of its nodes' values. Exam...

weixin_30344995的博客 128
上一篇: LeetCode 145. 二叉树的后序遍历 Binary Tree Postorder Traversal
下一篇: LeetCode 144. 二叉树的前序遍历 Binary Tree Preorder Traversal
KAIKAI_ING
博客等级 码龄12年 6粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值