кодесурса

Упражнения на Java: удаление указанного узла в середине односвязного списка

script1adsense2code
script1adsense3code

Java Basic: упражнение 175 с решением

Напишите Java-программу для удаления указанного узла в середине односвязного списка.

Образец односвязного списка: 10-> 20-> 30-> 40-> 50
Удалить четвертый узел, т.е. 40
Результат: 10-> 20-> 30-> 50

Иллюстрированная презентация:


Пример решения:

Java-код:

import java.util.*;
import java.util.Arrays;
import java.util.LinkedList;
public class Solution {
 public static ListNode head = new ListNode(10);
 public static void main(String[] args) {
  head.next = new ListNode(20);
  head.next.next = new ListNode(30);
  head.next.next.next = new ListNode(40);
  head.next.next.next.next = new ListNode(50);
  ListNode p = head;
  System.out.println("Original Linked list:");
  printList(p);
  System.out.println("\nAfter deleting the fourth node, Linked list becomes:");
  deleteNode(head.next.next.next);
  p = head;
  printList(p);
 }
 public static void deleteNode(ListNode node) {
  if (node.next != null) {
   int temp = node.val;
   node.val = node.next.val;
   node.next.val = temp;
   node.next = node.next.next;
  } else {
   ListNode p = head;
   while (p.next.val != node.val) {
    p = p.next;
   }
   p.next = null;
  }
 }
 static void printList(ListNode p) {
  while (p != null) {
   System.out.print(p.val);
   if (p.next != null) {
    System.out.print("->");
   }
   p = p.next;
  }
 }
}
class ListNode {
 int val;
 ListNode next;
 ListNode(int val) {
  this.val = val;
  this.next = null;
 }
}

Пример вывода:

 Оригинальный связанный список:
10-> 20-> 30-> 40-> 50
После удаления четвертого узла Связанный список становится:
10-> 20-> 30-> 50

Блок - схема:

«Блок-схема:

Редактор кода Java:

Компания: Adobe Apple Microsoft

Внесите свой код и комментарии через Disqus.

Предыдущий: Напишите программу на Java, чтобы найти максимальное число внутри числа в окне (размер k) при каждом перемещении в заданном массиве промежуточных чисел с повторяющимися числами. Переместить окно с начала массива.
Далее: напишите Java-программу для разбиения заданного массива целых чисел на четное число первым и нечетное число второго.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code