public int[] inorderTraversal (TreeNode root) {
        // write code here
        List<Integer> res = new ArrayList<>();
        dfs(root,res);
        return res.stream().mapToInt(Integer::valueOf).toArray();
    }

    private void dfs(TreeNode node,List<Integer> res){
        if(node==null) return ;
        dfs(node.left,res);
        res.add(node.val);
        dfs(node.right,res);
    }