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

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

题目1:二叉树中序遍历

(一)题目描述

给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。
在这里插入图片描述

(二)分析

二叉树中序遍历,遍历顺序:左节点 -》 根节点 -》 右节点
注意:二叉树的前、中、后序遍历就是以根为基准,前序遍历根在最前面,中序遍历根在中间,后序遍历根在最后面

(三)具体代码如下

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

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 ,树的各节点的值各不相同
在这里插入图片描述

(二)分析

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

(三)代码实现
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:二叉树后序遍历

(一)题目描述

在这里插入图片描述

分析

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

代码实现
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);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值