Advertisement
Guest User

Untitled

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