news 2026/4/23 13:00:45

A.每日一题——94. 二叉树的中序遍历

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
A.每日一题——94. 二叉树的中序遍历

题目链接:94. 二叉树的中序遍历(简单)

算法原理:

解法一:递归

0ms击败100.00%

时间复杂度O(N)

思路很简单,就是按照“左根右”的顺序递归即可

下面这篇博客有详细解析👇目录位置:二叉树→二叉树的遍历→中序遍历(递归写法)

Java数据结构——7.二叉树《干货笔记》

解法二:栈

1ms击败21.93%

时间复杂度O(N)

就是再前序遍历回溯到根节点时再顺便存一下

解法一的博客里也有详细解析,目录位置:OJ面试题→二叉树中序非递归遍历

Java代码:

/** * Definition for a binary tree node. * 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; * } * } */ class Solution { //解法一:递归 List<Integer> ret; public List<Integer> inorderTraversal(TreeNode root) { ret=new LinkedList<>(); dfs(root); return ret; } private void dfs(TreeNode node){ if(node==null) return; dfs(node.left); ret.add(node.val); dfs(node.right); } }
/** * Definition for a binary tree node. * 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; * } * } */ class Solution { //解法二:栈 List<Integer> ret; public List<Integer> inorderTraversal(TreeNode root) { ret=new LinkedList<>(); dfs(root); return ret; } private void dfs(TreeNode node){ if(node==null) return; Stack<TreeNode> stack=new Stack<>(); TreeNode cur=node; while(cur!=null||!stack.isEmpty()){ while(cur!=null){ stack.push(cur); cur=cur.left; } TreeNode top=stack.pop(); ret.add(top.val); cur=top.right; } } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 13:03:19

Java 零基础入门:核心基础知识点全总结

目录 一、Java 核心特性与跨平台原理 1.1 Java 的主要特性 1.2 Java 跨平台原理 JVM、JRE、JDK 三者关系 二、Java 注释 2.1 三种注释类型 2.2 使用技巧 三、Java 关键字 3.1 关键字概念 3.2 常用关键字一览 3.3 核心关键字&#xff1a;class 四、Java 字面量 4.1…

作者头像 李华
网站建设 2026/4/23 14:35:51

leetcode 976. Largest Perimeter Triangle 三角形的最大周长

Problem: 976. Largest Perimeter Triangle 三角形的最大周长 双指针&#xff0c;首先排序的&#xff0c;左侧指针从0开始&#xff0c;右侧指针从n-2开始&#xff0c;然后二分查找>(nums[i]nums[j])的最小值索引ind&#xff0c;若 j1ind说明不满足条件需要继续j–查找&#…

作者头像 李华
网站建设 2026/4/23 16:13:09

指数期权价格弹性指标构建与量化策略应用

1. 功能说明与风险警示 本研究聚焦于指数期权交易中的价格弹性指标开发&#xff0c;通过数学建模量化标的资产价格变动对期权合约价值的非线性影响。该指标旨在捕捉市场波动率曲面变化特征&#xff0c;为动态对冲和套利策略提供决策依据。核心功能包括&#xff1a;计算看涨/看跌…

作者头像 李华
网站建设 2026/4/23 14:35:35

指纹识别系统软件-Android studio软件源代码-java语言

指纹识别系统软件简介与使用说明 一、软件简介 &#x1f4f1; 软件定位 本软件是一款基于 Android 系统的指纹识别管理应用&#xff0c;通过调用设备原生指纹识别能力&#xff0c;实现用户身份验证、指纹注册及操作记录管理等功能&#xff0c;为用户提供便捷、安全的身份核验服…

作者头像 李华