LeetCode94. 二叉树的中序遍历

Posted mx_info

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode94. 二叉树的中序遍历相关的知识,希望对你有一定的参考价值。

LeetCode94. 二叉树的中序遍历

题目描述

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

思路分析

  1. 二叉树的遍历方式有三种,即前序中序和后序,三者的不同在于根节点的遍历顺序
  2. 如果先遍历根节点,再遍历左子树然后遍历右子树则为前序遍历
  3. 如果先遍历左子树,再遍历根节点,最后遍历右子树,则为中序遍历
  4. 如果先遍历左子树,再遍历右子树,最后再遍历根节点,则为后序遍历
  5. 较为简单,源码见下

源码及分析

//创建集合保存中序遍历的结果
    List<Integer> list = new ArrayList<>();
    /**
     * @param root 根节点
     * @return 返回遍历的结果
     */
    public List<Integer> inorderTraversal(TreeNode root) {
        //判断过根节点是否为空
        if (root == null) {
            return list;
        }
        //判断左子树是否为空,如果不为空,则递归遍历左子树
        if (root.left != null) {
            inorderTraversal(root.left);
        }
        //将当前节点加入集合
        list.add(root.val);
        //再判断当前节点的右子树是否为空,如果不为空,则递归遍历右子树
        if (root.right != null) {
            inorderTraversal(root.right);
        }
        return list;
    }

以上是关于LeetCode94. 二叉树的中序遍历的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode.94.二叉树的中序遍历

LeetCode 94. 二叉树的中序遍历

Leetcode94. 二叉树的中序遍历(递归)

leetcode-94-二叉树的中序遍历

LeetCode Java刷题笔记—94. 二叉树的中序遍历

255.LeetCode | 94. 二叉树的中序遍历