Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Test {
- class Node {
- Node next;
- int value;
- public Node(int value) {
- this.value = value;
- }
- public Node(int[]arr) {
- if(arr.length < 2) return;
- //array of size 2 or greater
- value = arr[arr.length - 1];
- Node temp = this;
- for(int i = arr.length - 2; i >=0; i--) {
- Node current = new Node(arr[i]);
- current.next = temp;
- temp = current;
- }
- this.next = temp;
- }
- public void print() {
- Node pointer = this;
- while((pointer = pointer.next) != this) {
- System.out.println(pointer.value);
- }
- System.out.println(pointer.value);
- }
- }
- public void countShift(Node tail) {
- Node pointer = tail;
- int value = tail.value;
- Node first = pointer.next, second = pointer;
- for(int i = 0; i < value; i++) {
- second = second.next;
- }
- while(pointer.next != tail) {
- pointer = pointer.next;
- }
- tail.next = second.next;
- second.next = tail;
- pointer.next = first;
- }
- public static void main(String[]args) {
- Test test = new Test();
- Node tail = test.new Node(new int[] {3,2,6,5,1,7,2});
- //tail.print();
- test.countShift(tail);
- tail.print();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement