несовместимые типы между List и LinkedList - PullRequest
0 голосов
/ 13 октября 2019

Мне было интересно, почему код выдаст ошибку: несовместимые типы: список не может быть преобразован в LinkedList.

Однако он может работать при изменении метода helper to:

public void helper (String curr, List res, int left, int right, int n) {

или я изменяю код, который вызываетконструктор: LinkedList res = новый LinkedList ();

class Solution {
public List<String> generateParenthesis(int n) {
   List<String> res = new LinkedList<String>();
    helper("",res,0,0,n);
    return res;        
}

public void helper(String curr, LinkedList<String> res,int left,int 
right,int n){  
    if(right==n) {res.add(curr); return;}
    if(left<n) helper(curr+"(",res,left+1,right,n);
    if(right<left) helper(curr+")",res,left,right+1,n);
    }
}

1 Ответ

2 голосов
/ 13 октября 2019
List<String> res = new LinkedList<>();

В этой строке вы присваиваете LinkedList переменной типа List. Таким образом, тип вашей переменной res будет List, а не LinkedList.

И затем вы пытаетесь передать переменную типа List методу, который принимает параметр типа LinkedList. Так что это невозможно.

Таким образом, вы можете либо изменить тип переменной res на LinkedList, либо изменить параметр метода на List

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...