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. 二叉树的中序遍历

上一篇:《CCNP ROUTE 300-101认证考试指南》——第8章 OSPF链路状态数据库


下一篇:DataX 安装部署