Hapus Duplikat dari daftar Linked yang tidak diurutkan (python)
Nov 04 2020
Dalam kode terakhir saya untuk menghapus duplikat, metode removeDupini tidak berfungsi. Yang terakhir print(ll.display())adalah mencetak daftar tertaut sebelumnya. Saya berharap itu hanya mencetak node unik. Apa yang saya lewatkan dalam removeDupsmetode ini? Saya tidak tahu. Apa yang terjadi pada kode di sini?
class Node:
def __init__(self,data = None):
self.data = data
self.next = None
def __repr__(self):
return self.data
class LList:
def __init__(self):
self.head = None
def display(self):
current = self.head
node = []
while current != None:
node.append(current.data)
current = current.next
return node
def append(self, data):
elem = Node(data)
if self.head == None:
self.head = elem
else:
current = self.head
while current.next != None:
current = current.next
current.next = elem
def add_atFront(self, data):
elem = Node(data)
if self.head == None:
self.head = elem
else:
elem.next = self.head
self.head = elem
def removeDup(self):
current = self.head
previous = None
elems = []
while current != None:
if current.data in elems:
previous.next= current.next
else:
elems.append(current.data)
previous = current
current = current.next
ll= LList()
print(ll.display())
ll.append(65)
ll.append(7)
ll.add_atFront('65')
ll.add_atFront('Bare')
ll.insert('10',0)
ll.insert('7',2)
print(ll.display())
ll.removeDup()
print(ll.display())
Jawaban
1 nullUser Nov 04 2020 at 06:49
Anda removeDupbekerja dengan baik, masalahnya adalah bahwa 65 dan '65' bukan duplikat, jadi Anda tidak boleh berharap removeDupuntuk menghapusnya. Hal yang sama berlaku untuk 7 dan '7'. Juga, perhatikan bahwa Anda tidak pernah menentukan insertmetode, tetapi saya akan menganggap itu hanya kesalahan penyalinan.
Selalu Menjadi Ancaman: Mengapa Orang Berkulit Coklat dan Hitam Tidak Bisa Nyaman di Amerika Serikat
Taylor Sheridan Baru Menambahkan 1 Bintang 'Yellowstone' Favoritnya ke Pemeran 'Lawmen: Bass Reeves'