【刷题笔记8.11】LeetCode题目:二叉树中序遍历、前序遍历、后序遍历

LeetCode题目:二叉树中序遍历、前序遍历、后序遍历

题目1:二叉树中序遍历

(一)题目描述

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

(二)分析

二叉树中序遍历,遍历顺序:左节点 -》 根节点 -》 右节点

注意:二叉树的前、中、后序遍历就是以根为基准,前序遍历根在最前面,中序遍历根在中间,后序遍历根在最后面

(三)具体代码如下

这题没啥意思,咱使用递归方式,直接背下来最快

java 复制代码
public class Solution {
    public List<Integer> inorderTraversal(TreeNode root) {
    	//创建一个集合,用于接收返回结果
        List<Integer> result = new ArrayList<>();
        inorder(root, result);
        return result;
    }

    public void inorder(TreeNode root, List<Integer> list) {
        if (root == null) {
            //在void修饰的方法中,return;相当于return null;(实际上编译后的字节码是相同的),并且在void的方法中只能使用return,使用return null会报错。
            return;
        }

        //中序遍历(左------》根------》右)
        inorder(root.left, list);
        list.add(root.val);
        inorder(root.right, list);
    }
}

题目2:二叉树的前序遍历

(一)题目描述

描述

给你二叉树的根节点 root ,返回它节点值的 前序 遍历。

数据范围:二叉树的节点数量满足

1≤n≤100 ,二叉树节点的值满足

1≤val≤100 ,树的各节点的值各不相同

(二)分析

二叉树前序遍历:根节点 -》 左节点 -》右节点

(三)代码实现

java 复制代码
public class Solution {
    public List<Integer> preorderTraversal(TreeNode root) {
    	//创建一个集合,用于接收返回结果
        List<Integer> result = new ArrayList<>();
        preorder(root, result);
        return result;
    }

    public void preorder(TreeNode root, List<Integer> list) {
        if (root == null) {
            //在void修饰的方法中,return;相当于return null;(实际上编译后的字节码是相同的),并且在void的方法中只能使用return,使用return null会报错。
            return;
        }

        //前序遍历(根------》左------》右)
        list.add(root.val);
        preorder(root.left, list);
        preorder(root.right, list);
    }
}

题目3:二叉树后序遍历

(一)题目描述

分析

二叉树后序遍历:左节点 -》 右节点 -》根节点

代码实现

java 复制代码
public class Solution {
    public List<Integer> postorderTraversal(TreeNode root) {
    	//创建一个集合,用于接收返回结果
        List<Integer> result = new ArrayList<>();
        postorder(root, result);
        return result;
    }

    public void postorder(TreeNode root, List<Integer> list) {
        if (root == null) {
            //在void修饰的方法中,return;相当于return null;(实际上编译后的字节码是相同的),并且在void的方法中只能使用return,使用return null会报错。
            return;
        }

        //后序遍历(左------》右------》根)

        postorder(root.left, list);
        postorder(root.right, list);
        list.add(root.val);
    }
}
相关推荐
搞笑症患者4 分钟前
压缩感知(Compressed Sensing, CS)
算法·最小二乘法·压缩感知·正交匹配追踪omp·迭代阈值it算法
im_AMBER8 分钟前
Leetcode 101 对链表进行插入排序
数据结构·笔记·学习·算法·leetcode·排序算法
予枫的编程笔记8 分钟前
【Java集合】深入浅出 Java HashMap:从链表到红黑树的“进化”之路
java·开发语言·数据结构·人工智能·链表·哈希算法
ohoy14 分钟前
RedisTemplate 使用之Set
java·开发语言·redis
mjhcsp14 分钟前
C++ 后缀数组(SA):原理、实现与应用全解析
java·开发语言·c++·后缀数组sa
快手技术26 分钟前
AAAI 2026|全面发力!快手斩获 3 篇 Oral,12 篇论文入选!
前端·后端·算法
颜酱27 分钟前
前端算法必备:滑动窗口从入门到很熟练(最长/最短/计数三大类型)
前端·后端·算法
8***f39528 分钟前
Spring容器初始化扩展点:ApplicationContextInitializer
java·后端·spring
做科研的周师兄29 分钟前
【MATLAB 实战】栅格数据 K-Means 聚类(分块处理版)—— 解决大数据内存溢出、运行卡顿问题
人工智能·算法·机器学习·matlab·kmeans·聚类
X在敲AI代码30 分钟前
leetcodeD3
数据结构·算法