Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.48 KB | None | 0 0
  1. // Definition for singly-linked list:
  2. // class ListNode<T> {
  3. //   ListNode(T x) {
  4. //     value = x;
  5. //   }
  6. //   T value;
  7. //   ListNode<T> next;
  8. // }
  9. //
  10. //
  11.  
  12. boolean isListPalindrome(ListNode<Integer> l) {
  13.        
  14.     if(l == null)
  15.         return true;
  16.    
  17.     Integer length = getListLength(l);
  18.     System.out.println(length);
  19.    
  20.     int firstInSecondHalfIndex = length%2 == 0 ? length/2 : (length/2) + 1;
  21.    
  22.     ListNode<Integer> mid = l;
  23.     for(int i=0;i<=firstInSecondHalfIndex;i++){
  24.         if(i==0)
  25.             mid = l;
  26.         else
  27.             mid = mid.next;
  28.     }
  29.    
  30.     ListNode<Integer> newFirstInSecondHalf = reverse(mid);
  31.    
  32.    
  33.     ListNode<Integer> a = l;
  34.     ListNode<Integer> b = newFirstInSecondHalf;
  35.     for(int i=0;i<length/2;i++){
  36.         if(a.value - b.value !=0){
  37.             return false;
  38.         }
  39.         a = a.next;
  40.         b = b.next;
  41.     }
  42.    
  43.     return true;
  44. }
  45.  
  46. Integer getListLength(ListNode<Integer> node){
  47.    
  48.     if(node == null)
  49.         return 0;
  50.    
  51.     int count = 1;
  52.     while(node.next != null){
  53.         count++;
  54.         node = node.next;
  55.     }
  56.     return count;
  57. }
  58.  
  59.  
  60. ListNode<Integer> reverse(ListNode<Integer> head){
  61.     ListNode<Integer> current = head;
  62.     ListNode<Integer> prev = null;
  63.     ListNode<Integer> next;
  64.    
  65.     while(current != null){
  66.         next = current.next;
  67.         current.next = prev;
  68.         prev = current;
  69.         current = next;
  70.     }
  71.    
  72.     return prev;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement