У меня возникли проблемы с пониманием этой проблемы растрескивания интервью кодирования:Когда использовать LinkedListNode против LinkedList
Написать код для удаления дубликатов из несортированного связанного списка
Решение:
public static void deleteDups(LinkedListNode n){
Hashtable table = new Hashtable();
LinkedListNode previous = null;
while(n != null){
if(table.containsKey(n.data)) {
previous.next = n.next;
} else{
table.put(n.data, true);
previous = n;
}
n = n.next;
}
}
Я не понимаю, почему вы передаете LinkedListNode, а не LinkedList. Если вы хотите удалить дубликаты из связанного списка, почему бы вам просто не взять и не перебрать весь список?
Предполагая, что 'n' является главой списка, нет никакой разницы. – shmosel
Возможный дубликат [Что такое LinkedListNode в Java] (http://stackoverflow.com/questions/5374077/what-is-linkedlistnode-in-java) –
Передача узла вместо всего списка позволяет пользователю определить запуск (узел, который нужно начинать), вместо того, чтобы делать весь список. Я не знаю, нужно ли это где-то. Если нет, то нет большой разницы. –