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

leetcode——二叉树的中序遍历(java)

给定一个二叉树的根节点 root ,返回 它的 中序 遍历

示例 1:

img

输入:root = [1,null,2,3]
输出:[1,3,2]

示例 2:

输入:root = []
输出:[]

示例 3:

输入:root = [1]
输出:[1]

解题方法:(二叉树的中序遍历)

1.首先说到中序遍历,先搞清楚原理,中序遍历就是左中右节点依次遍历返回。

2.所以我们先创建一个结果列表,然后建立辅助函数,进入递归,递归条件是,当前二叉树的节点非空。

  • 先递归左节点。

  • 然后将当前的节点值加入结果列表中。

  • 接着进入右节点的递归。

/**
 * 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> ans = new ArrayList<>();
    public List<Integer> inorderTraversal(TreeNode root) {
        traverse(root);
        return ans;   
    }
    private void traverse(TreeNode node) {
        if (node != null) {
            traverse(node.left);
            ans.add(node.val);
            traverse(node.right);
        }
    }
}


http://www.kler.cn/a/524284.html

相关文章:

  • MotionLCM 部署笔记
  • C++:PTA L2-003 月饼
  • Acwing94递归实现排列型枚举
  • 【C++题解】1393. 与7无关的数?
  • c#使用log4Net配置日志文件
  • 算法基础学习——二分查找(附带Java模板)
  • 机器人基础深度学习基础
  • 记忆力训练day08
  • doris:HLL
  • 网络安全攻防实战:从基础防护到高级对抗
  • 园区管理系统如何赋能企业高效运营与资产全生命周期管理
  • 星际战争模拟系统:新月的编程之道
  • Javaweb入门-Maven项目学习(Day2)
  • 准备知识——旋转机械的频率和振动基础
  • Linux_线程互斥
  • Git 仓库命令
  • 58.界面参数传递给Command C#例子 WPF例子
  • WordPress Icegram Express插件Sql注入漏洞复现(CVE-2024-2876)(附脚本)
  • Java 大视界 -- Java 大数据在自动驾驶中的数据处理与决策支持(68)
  • 安卓逆向之脱壳-认识一下动态加载 双亲委派(一)
  • 设计模式的艺术-观察者模式
  • (done) ABI 相关知识补充:内核线程切换、用户线程切换、用户内核切换需要保存哪些寄存器?
  • MATLAB中extractAfter函数用法
  • Git进阶之旅:Git 命令
  • Django ORM解决Oracle表多主键的问题
  • 全程Kali linux---CTFshow misc入门(1-12)