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

简介

题目链接:https://leetcode.cn/problems/binary-tree-inorder-traversal/description/

解决方式:二叉树 + 递归

这是作者学习众多大神的思路进行解题的步骤,很推荐大家解题的时候去看看题解里面大佬们的思路、想法!

递归

思路:中序遍历就是按照 左子树-根节点-右子树 的方式访问节点,我们只需要按照这个顺序递归就好了。

java 复制代码
class Solution {
    public List<Integer> inorderTraversal(TreeNode root) {
        // 结果集合
        ArrayList<Integer> list = new ArrayList();
        // 递归
        inorder(root, list);

        return list;
    }

    private void inorder(TreeNode root, ArrayList<Integer> list){
        // 边界处理
        if (root == null) return;
        // 中序遍历:左-根-右
        inorder(root.left, list);
        // 前序、后序遍历只需改变此处位置
        list.add(root.val);
        inorder(root.right, list);
    }
}
相关推荐
Jerry4 小时前
LeetCode 160. 相交链表
算法
Jerry5 小时前
LeetCode 19. 删除链表的倒数第 N 个结点
算法
金銀銅鐵5 小时前
费马小定理
python·数学·算法
技术不好的崎鸣同学6 小时前
[ACTF2020 新生赛]Exec 思路及解法
算法·安全·web安全
Full Stack Developme7 小时前
Java LRU 与 LFU 算法及应用
java·开发语言·算法
Jerry9 小时前
LeetCode 707. 设计链表
算法
C语言小火车9 小时前
C++ 堆排序深度精讲:基于完全二叉树的选择排序进化,最坏情况 O(n log n) 的稳定王者
开发语言·c++·算法·排序算法·堆排序
weixin_400005609 小时前
Vision-Language-Action:LMDrive双损失函数训练模块与 LangAuto 基准评测框架
人工智能·深度学习·算法·机器学习·自动驾驶
kebidaixu9 小时前
两轮BMS AFE SH367306 I2C 读写时序
算法