Этот блог относительно прост. Просто посмотрите на обратный порядок отдельных связанных списков, если вы не понимаете.
Идея обратного порядка
Теперь предположим, что есть связанный список, который должен работать в обратном порядке. Первое, о чем мы думаем, - это изменить отношения с указателем.
На самом деле, вот и все. Блогер - это единая операция обратного заказа связанного списка с этой целью.
Узел pre = null; Node post = null; while (head! = Null) {post = head.next; Head.next = pre; pre = голова; Head = post;}Это ядро обратного порядка. Давайте объясним шаг за шагом.
В начале, Pre и Post установлены на NULL. Это необходимо, потому что после строки выполнения кода Head.next = pre, ближайший из нашего первоначального головного узла станет нулевым, то есть нулевым всем нашего связанного списка.
Представьте, что следующий в конце исходного списка ссылок также является нулевым? Правда здесь такая же.
В настоящее время обновление до исходного узла головы также для подготовки к следующему шагу обратного порядка, и голова естественным образом становится исходной головкой.
Извините, моя рука дрожала, и я нарисовал это неправильно. Спасибо всем. В пятый раз на диаграмме нарисованной вручную указывается, что предварительный узел должен находиться в положении узла 5, а голова нет.
Из легенды не сложно увидеть, что мы снова и снова перемещаем голову назад и одновременно обновляем предварительный узел, чтобы достичь эффекта обратного порядка.
Код
Список пакетов; открытый класс Reverselist {public static void main (string [] args) {node head = new node (1); int [] value = {2,3,4,5}; узловая температура = head; for (int i = 0; i <value.length; i ++) {Node = node = node (value [i]); temp.next;} printlist (head); // обратный порядок вывода. Один единственный связанный список головы = reverse (head); printlist (head); // снова обратно головы = reversesinglelist (head); printlist (head);} public static void printlist (head) {while (Head! = null) {System.out.print ("/t"+had.vale); head.next;} system.out.println ();} public Static Node Reverse (Head Node Head) {node pre = null; node post = null; while (head! = null) {post = head.next; Head.next = pre; pre = head; Head = post;} return pre;} precation node node reversesinglistlististististlelistist (node) {node) {node) {node) {node) {node) {node) {node). null; while (head! = null) {next = head.next; head.next = pre; pre = head; head = next;} return pre;}} класс Node {public int value; public next next; public node (int value) {this.value = value;}}тест
После тестирования вывод кода верен.
1 2 3 4 5
5 4 3 2 1
1 2 3 4 5
Чтобы понять, вот еще один пример:
/** * Java реализует обратный порядок отдельных связанных списков * @author Administrator * */Public Class SingLeLinkEdReverse {Class Node {int Data; Node Next; public node (int data) {this.data = data;}} public static main (string [] args) {headlinkedRever = headverse = headverse = headver. slr.new node (0); for (int i = 1; i <10; i ++) {node p = slr.new node (i); hail.next = p; hail = p;} hail = head; while (хвост! = null) {System.out.print (hail.data+""); hail. while (Head! = null) {System.out.print (head.data+""); head = head.next;}} частное статическое узел назад (головка узла) {узел p1, p2 = null; p1 = head; while (head.next! P2;}}Результаты теста:
0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0
Суммировать
Выше приведено все содержимое этой статьи о примере кода применения обратного порядка однозначных списков Java. Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!