Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package lab;
- public class List {
- public List() {
- head = null;
- }
- private static class Node {
- int value;
- Node next;
- Node(int v, Node n) {
- value = v;
- next = n;
- }
- }
- private Node head;
- public void add(int x) { // добавление новой ноды в "голову"
- head = new Node(x, head);
- }
- public void reverse() { //запись списка в обратном порядке
- Node previous = null;
- Node pointer = head;
- while (pointer != null) {
- Node next = pointer.next; //сохранение следующего элемента списка
- pointer.next = previous; //смена направления указателя
- previous = pointer; //предыдущий становится текущим
- pointer = next;//переход к следующему
- }
- head = previous;
- }
- public void removeSameValues() { // "удаление" повторяющегося элемента
- Node curr = head;
- while (curr != null) {
- Node nextNode = curr.next;
- Node currNode = curr;
- while (nextNode != null) {
- if (curr.value == nextNode.value) {
- currNode.next = nextNode.next;
- nextNode = nextNode.next;
- } else {
- nextNode = nextNode.next;
- currNode = currNode.next;
- }
- }
- curr = curr.next;
- }
- }
- public void print() {
- Node h = head;
- while (h != null) {
- System.out.print(h.value + " ");
- h = h.next;
- }
- System.out.println();
- }
- public static void main(String[] args) {
- List list = new List();
- // for (int i = 0; i < 5; i++) { //создание и заполнение списка
- // int x = (int) (Math.random() * 100);
- // list.add(x);
- list.add(1);
- list.add(2);
- list.add(3);
- list.add(4);
- list.add(3);
- list.add(5);
- list.add(5);
- list.add(3);
- list.add(5);
- list.add(5);
- System.out.println(list.head.value);
- System.out.println(list.head.next.value);
- list.print();
- System.out.println();
- list.removeSameValues();
- list.print();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement