При простом создании дерева я получил ошибку: ожидается класс .class - PullRequest
0 голосов
/ 28 мая 2018

Это мой простой код для получения дерева из предзаказа и нотации дерева.Я хотел использовать рекурсию.Но JAVA говорит об ошибке: '.class' expected in "here".

Это связано с концепцией обещания ??Как я могу избежать этой ошибки

public class Main {

  public static void main(String args[]){
      int[] preorder = new int[] {3, 9, 8, 12, 13};
      int[] inorder = new int[] {9, 3, 12, 8, 13};
      TreeNode result;

      TreeNode root = new TreeNode(preorder[0]);
      root.left = new TreeNode(3);
      System.out.println(root.left.val);
  }

  public static TreeNode buildTree(int[] preorder, int[] inorder) {

      TreeNode root = new TreeNode(preorder[0]);

      if (preorder.length==1) return root;

      int rootindex=-1;
      for (int i=0 ; i<inorder.length ; i++) {
          if (inorder[i]==preorder[0]) rootindex = i;
      }

      int[] leftpre = new int[rootindex];
      for (int i=0 ; i<rootindex ; i++ )
          leftpre[i] = preorder[i+1];

      int[] rightpre = new int[(preorder.length-(1+rootindex))];
      for (int i=0 ; i<preorder.length-(1+rootindex) ; i++)
          rightpre[i] = preorder[i+1+rootindex];

      int[] leftin = new int[rootindex];
      for (int i=0 ; i<rootindex ; i++)
          leftin[i] = inorder[i];

      int[] rightin = new int[(inorder.length-(1+rootindex))];
      for (int i=0 ; i<inorder.length-(1+rootindex) ; i++)
          rightin[i] = inorder[i+1+rootindex];

      TreeNode left = new buildTree(int[] leftpre, int[] leftin); //here 
      root.left = left;
      TreeNode right = new buildTree(int[] rightpre, int[] rightin); // and here
      root.right = right;
      return root;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...