题解 | #二叉树的中序遍历#

二叉树的中序遍历

http://www.nowcoder.com/practice/0bf071c135e64ee2a027783b80bf781d

后序遍历:左右根

递归:


package com.nateshao.nowcoder_top101.binary_tree.BM24_inorderTraversal;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

/**
 * @date Created by 邵桐杰 on 2022/4/23 11:06
 * @微信公众号 千羽的编程时光
 * @个人网站 www.nateshao.cn
 * @博客 https://nateshao.gitlab.io
 * @GitHub https://github.com/nateshao
 * @Gitee https://gitee.com/nateshao
 * Description: https://www.nowcoder.com/practice/0bf071c135e64ee2a027783b80bf781d?tpId=295&tqId=1512964&ru=/exam/oj&qru=/ta/format-top101/question-ranking&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26tab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D295
 * BM24 二叉树的中序遍历
 */
public class Solution {

    /**
     * 牛客网
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * <p>
     * 递归法
     *
     * @param root TreeNode类
     * @return int整型一维数组
     */
    /* 回溯算法思路 */
    List<Integer> res = new LinkedList<>();
    // 返回前序遍历结果
    public int[] inorderTraversal(TreeNode root) {
        traverse(root);
        return res.stream().mapToInt(Integer::intValue).toArray();
    }

    // 二叉树遍历函数
    void traverse(TreeNode root) {
        if (root == null) return;
        traverse(root.left);
        // 中序遍历位置
        res.add(root.val);
        traverse(root.right);
    }


    public class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;

        public TreeNode(int val) {
            this.val = val;
        }
    }

}

全部评论

相关推荐

头像
不愿透露姓名的神秘牛友
04-08 20:03
已编辑
点赞 评论 收藏
转发
点赞 1 评论
分享
牛客网
牛客企业服务