import java.util.*;

/*

  • public class TreeNode {
  • int val = 0;
  • TreeNode left = null;
  • TreeNode right = null;
  • public TreeNode(int val) {
  • this.val = val;
    
  • }
  • } */

public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @return int整型一维数组 */ public int[] inorderTraversal (TreeNode root) { // write code here if(root == null){ return new int[0]; }

    Stack<TreeNode> stack =  new Stack<>();
    ArrayList<Integer> arrayList = new ArrayList<>();
    while(root != null || !stack.isEmpty()){
        if(root != null){
            stack.push(root);
            root = root.left;
        }else{
            root = stack.pop();
            arrayList.add(root.val);
            root = root.right;
        }
    }
    
    int len = arrayList.size();
    int[] arr = new int[len];
    Object[] object =  arrayList.toArray();
    for(int i=0;i<len;i++){
        arr[i] = (int)object[i];
    }
    
    return arr;
}

}