Advertisement
Guest User

countShift

a guest
Jun 18th, 2018
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.14 KB | None | 0 0
  1. public class Test {
  2.     class Node {
  3.         Node next;
  4.         int value;
  5.         public Node(int value) {
  6.             this.value = value;
  7.         }
  8.         public Node(int[]arr) {
  9.             if(arr.length < 2) return;
  10.             //array of size 2 or greater
  11.             value = arr[arr.length - 1];
  12.             Node temp = this;
  13.             for(int i = arr.length - 2; i >=0; i--) {
  14.                 Node current = new Node(arr[i]);
  15.                 current.next = temp;
  16.                 temp = current;
  17.             }
  18.             this.next = temp;
  19.         }
  20.         public void print() {
  21.             Node pointer = this;
  22.             while((pointer = pointer.next) != this) {
  23.                 System.out.println(pointer.value);
  24.             }
  25.             System.out.println(pointer.value);
  26.         }
  27.     }
  28.     public void countShift(Node tail) {
  29.         Node pointer = tail;
  30.         int value = tail.value;
  31.         Node first = pointer.next, second = pointer;
  32.         for(int i = 0; i < value; i++) {
  33.             second = second.next;
  34.         }
  35.         while(pointer.next != tail) {
  36.             pointer = pointer.next;
  37.         }
  38.         tail.next = second.next;
  39.         second.next = tail;
  40.         pointer.next = first;
  41.     }
  42.     public static void main(String[]args) {
  43.         Test test = new Test();
  44.         Node tail = test.new Node(new int[] {3,2,6,5,1,7,2});
  45.         //tail.print();
  46.         test.countShift(tail);
  47.         tail.print();
  48.     }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement