Меня попросили написать метод, который запускается в связанном списке и проверяет, содержат ли два списка одинаковые значения (необязательно, чтобы значения между ними были одинаковыми).
Вот мой код:
public boolean Equals(Object obj) {
if(obj instanceof LinkedList) //Checks if the object it got is a Linked List
{
if(this.length() != ((LinkedList)obj).length())
return false;
Node head1 = head;
Node head2 = ((LinkedList) obj).getHead();
boolean ans = false;
this.toString();
((LinkedList)obj).toString();
while(head1 != null)// Running on the 1st list values
{
while(head2 != null) { // comparing each value in the 2nd list to see if it's on the 1st list as well
if(head2.getValue() == head1.getValue())
ans = true;
head2 = head2.getNext();
}
if(ans == false)
return false;
ans = false;
head1 = head1.getNext();
}
return true;
}
else
return false;
}
Я также добавляю класс структуры, чтобы у вас не было никаких трудностей с пониманием:
public class LinkedList {
// Attributes
private Node head, tail;
private int length;
// Constructor
public LinkedList() {
head = tail = null;
length = 0;
}
// getHead
public Node getHead() {
return head;
}
// getTail
public Node getTail() {
return tail;
}
// Length
public int length() {
return length;
}
// isEmpty
public boolean isEmpty() {
return head == null;
}
Он возвращает false во всех случаях, несмотря ни на что, мне не удается ввести мою ошибку, большое спасибо !!