#python #linked-list
Вопрос:
Я написал ниже некоторый код, чтобы определить, является ли связанный список палиндромом, но когда я прогоняю его через тестовые случаи, время просто истекает. Есть идеи, что не так с кодом? Спасибо
def isPalindrome(self, head: ListNode) -> bool:
if head == None:
return True
length_ll = 0
curr = head
while curr:
length_ll =1
curr = curr.next
mid_point = length_ll//2
head2 = head
for _ in range(mid_point):
head2 = head2.next
prev = head2
curr = head2
nex = head2.next
while nex:
curr = nex
curr.next = prev
nex = nex.next
prev = curr
head2.next = None
curr = head
curr2 = head2
while curr or curr2:
if curr2.val != curr.val:
return False
else:
curr = curr.next
curr2 = curr2.next
return True
Ответ №1:
Ваше 3 while
-е утверждение бесконечно (если curr2.val == curr.val
оно никогда не прекратится)
Комментарии:
1. Привет, я отредактировал приведенный выше код, но я все еще получаю ошибку тайм-аута? Можете ли вы предложить, что не так, и возможное решение? Спасибо
2. Привет! Добавьте дополнительную информацию: что находится в вашем классе ListNode и какие тесты вы пытаетесь запустить