In [59]:
#2-6 Palindrome: Implement a function to check if a linked list is a palindrome.
from node_class import node
from linked_list import LinkedList
def checkpali(ll):
node = ll.head
if reverse(ll) is None or node is None:
return False
else:
node2 = reverse(ll).head
while node is not None:
if node.data!=node2.data:
return False
else:
node = node.next
node2 = node2.next
return True
def reverse(ll):
ll2 = LinkedList()
node1 = ll.head
if node1 is None:
return None
while node1 is not None:
ll2.insert(node1.data)
node1 = node1.next
return ll2
In [60]:
ll = LinkedList()
ll.insert(3)
ll.insert(4)
ll.insert(2)
ll.insert(5)
ll.insert(2)
ll.insert(4)
ll.insert(3)
print ll
In [61]:
reverse(ll)
print reverse(ll)
In [62]:
checkpali(ll)
Out[62]:
In [63]:
l1 = LinkedList()
checkpali(l1)
Out[63]:
In [ ]: