题目

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

数据范围:树上节点数满足 0 ≤ n ≤ 1000 ,树上每个节点的值满足 0 ≤ val ≤ 1000

进阶:空间复杂度 O(n),时间复杂度 O(n)

解题思路: 二叉树的中序遍历,很简单。本题重点:Integer类型的list如何转int类型数组。

代码:

public class Solution {
    ArrayList<Integer> list=new ArrayList<>();
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param root TreeNode类 
     * @return int整型一维数组
     */
    public int[] inorderTraversal (TreeNode root) {
        // write code here
       ArrayList<Integer> helpList=inorder(root,list);
       int[] intArr = list.stream().mapToInt(Integer::intValue).toArray();
       return intArr;
    }
    public ArrayList<Integer> inorder(TreeNode root, ArrayList<Integer> list){
        if(root==null){
            return list;
        }
        inorder(root.left,list);
        list.add(root.val);
        inorder(root.right,list);
        return list;
    }
}