2017-02-07 13 views
1

Это то, что мой конструктор выглядит, как в моем LinkedNode классе:LinkedList: что заменить узел на последнем узле?

int info; 
LinkedNode next; 

public LinkedNode(int info, LinkedNode next) { 
    this.info = info; 
    this.next = next; 
} 

В моем Test (основном) классе, когда я пытаюсь создать узлы, как например:

LinkedNode d = new LinkedNode(40, null); 
LinkedNode c = new LinkedNode(30, d); 
LinkedNode b = new LinkedNode(20, c); 
LinkedNode a = new LinkedNode(10, new LinkedNode(20, LinkedNode(30, LinkedNode(40, null)))); 

, то я получаю ошибка компиляции говорит мне

метод LinkedNode (INT, нуль) не определено для типа Test

И это правда, поскольку второй параметр моего конструктора относится к типу LinkedNode, но как же я могу сказать, что последнего узла пуст?

+3

Похоже, вам не хватает ключевого слова 'new' – chatton

+0

где именно ??? – ratboy

+0

d, c и b LinkedNode не связаны с. Вы не должны делать этого: 'LinkedNode a = new LinkedNode (10, b)' – davidxxx

ответ

2

Следующий код будет синтаксически правильный (new ключевое слово отсутствовало, как Чаттон уже сказал)

LinkedNode a = new LinkedNode(10, 
    new LinkedNode(20, 
     new LinkedNode(30, 
      new LinkedNode(40, null)))); 

Но, может быть, вы имеете в виду

LinkedNode a2 = new LinkedNode(10, b); 

вместо этого?

+0

Да, я использовал то, что у вас есть в вашем втором коде, но просто хотел попробовать другой, рекурсивный-иш-путь для этого. Мой единственный вопрос сейчас - я предполагаю, что «null» имеет тип LinkedNode (или любой другой узел) и может быть использован в качестве второго параметра в моем случае, правильно? – ratboy

+0

Да, с нулевым значением, поскольку второй параметр полностью прекрасен. –

1
LinkedNode d = new LinkedNode(40, null); 
LinkedNode c = new LinkedNode(30, d); 
LinkedNode b = new LinkedNode(20, c); 
LinkedNode a = new LinkedNode(10, new LinkedNode(20, new LinkedNode(30, new LinkedNode(40, null)))); 

You can also use this tutorial

1

Я попытался с помощью кода, но это работает, когда добавить новое ключевое слово.

LinkedNode c = new LinkedNode(10, new LinkedNode(20, new LinkedNode(30, new LinkedNode(40, null))));