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

94. 二叉树的中序遍历

在这里插入图片描述

// 定义一个名为Solution的类,用于解决二叉树的中序遍历问题  
class Solution {  // 定义一个公共方法,输入是一个二叉树的根节点,返回一个包含中序遍历结果的整数列表  public List<Integer> inorderTraversal(TreeNode root) {  // 创建一个空的整数列表,用于存储中序遍历的结果  List<Integer> res = new ArrayList<>();  // 调用私有方法inorder进行中序遍历,并将结果存储在res列表中  inorder(root, res);  // 返回存储了中序遍历结果的列表  return res;  }  // 定义一个私有方法,输入是一个二叉树的根节点和一个用于存储结果的列表  // 该方法用于执行实际的中序遍历  void inorder(TreeNode root, List<Integer> list) {  // 如果当前节点为空,则直接返回,不进行任何操作  if (root == null) {  return;  }  // 递归地对左子树执行中序遍历  inorder(root.left, list);  // 将当前节点的值添加到结果列表中  list.add(root.val); // 注意这一句,它确保了在遍历到根节点时,根节点的值会被添加到结果列表中  // 递归地对右子树执行中序遍历  inorder(root.right, list);  }  
}

在这段代码中,TreeNode 是一个自定义的二叉树节点类,它至少包含三个成员:val(节点的值),left(指向左子节点的引用),和 right(指向右子节点的引用)。

inorderTraversal 方法是公共接口,它接收一个二叉树的根节点作为参数,并返回一个包含中序遍历结果的整数列表。这个方法首先创建一个空的列表 res,然后调用私有方法 inorder 来执行实际的中序遍历,并将结果添加到 res 中。最后,它返回这个列表。

inorder 方法是一个私有递归方法,它接收一个节点和一个列表作为参数。如果节点为空,则方法直接返回。否则,它首先递归地对其左子树执行中序遍历,然后将当前节点的值添加到列表中,最后递归地对其右子树执行中序遍历。这个过程确保了中序遍历的顺序(左-根-右)被正确地遵守。

http://www.lryc.cn/news/305279.html

相关文章:

  • 汽车信息安全概述
  • Linux——基础IO
  • 数据结构-数组
  • 【Java程序设计】【C00279】基于Springboot的智慧外贸平台(有论文)
  • C#,计算几何,计算机图形学(Computer Graphics)洪水填充算法(Flood Fill Algorithm)与源代码
  • C# 实现网页内容保存为图片并生成压缩包
  • C#_事件简述
  • C语言:指针(一)
  • 【leetcode刷题之路】面试经典150题(3)——哈希表+区间
  • 群晖NAS DSM7.2.1安装宝塔之后无法登陆账号密码问题解决
  • 9、使用 ChatGPT 的 GPT 制作自己的 GPT!
  • 企业微信应用开发:使用Cpolar域名配置进行本地接口回调的调试指南
  • js 可选链运算符(?.)空值合并运算符(??)逻辑空赋值运算符(??=)
  • vue 手势解锁功能
  • 介绍 CI / CD
  • Stable Diffusion 3 Early Preview发布
  • 【解决(几乎)任何机器学习问题】:特征选择
  • 24 双非计算机秋招总结
  • 用友NC65与用友NCC对接集成NC65-凭证列表查询打通凭证新增
  • 【初中生讲机器学习】12. 似然函数和极大似然估计:原理、应用与代码实现
  • 【达梦数据库】查看pesg回滚段信息的视图和SQL
  • UML---活动图
  • 编程笔记 Golang基础 018 常量与变量
  • 如何使用Douglas-042为威胁搜索和事件应急响应提速
  • 华为配置WLAN AC和AP之间VPN穿越示例
  • 跨语言的序列化与反序列化
  • 软考-中级-系统集成2023年综合知识(三)
  • 五、使用脚手架
  • 抛弃chatgpt,使用微软的Cursor提升coding效率
  • uniapp插件uViewplus的使用(涉及TS下的问题)