Advertisement
Guest User

Untitled

a guest
May 27th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. #2.6 Find if a linked list is a palindrome
  2.  
  3. def palindrome_linked_list(node):
  4.  
  5. prev_node = None
  6. cur_node = node
  7. while cur_node != None:
  8. new_node = {'val': cur_node['val']}
  9. if prev_node != None:
  10. new_node['next'] = prev_node
  11. prev_node = new_node
  12.  
  13. if 'next' in cur_node:
  14. cur_node = cur_node['next']
  15. else:
  16. cur_node = None
  17.  
  18. new_head = prev_node
  19.  
  20. cur_node = node
  21. cur_rev_node = new_head
  22.  
  23. while cur_node != None and cur_rev_node != None:
  24. if cur_node['val'] != cur_rev_node['val']:
  25. return False
  26.  
  27. if 'next' in cur_node:
  28. cur_node = cur_node['next']
  29. cur_rev_node = cur_rev_node['next']
  30. else:
  31. cur_node = None
  32. cur_rev_node = None
  33.  
  34. return True
  35.  
  36.  
  37.  
  38.  
  39. print(1 if palindrome_linked_list({"val": 1, "next": {"val": 2}}) == False else 0)
  40. print(1 if palindrome_linked_list({"val": 1, "next": {"val": 2, "next": {"val": 1}}}) == True else 0)
  41. print(1 if palindrome_linked_list({"val": 1, "next": {"val": 2, "next": {"val": 2, "next": {"val": 1}}}}) == True else 0)
  42. print(1 if palindrome_linked_list({"val": 1, "next": {"val": 2, "next": {"val": 2, "next": {"val": 3}}}}) == False else 0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement