Este blog é relativamente simples. Basta olhar para a ordem inversa de listas vinculadas, se você não entender.
Ideia reversa do pedido
Agora, suponha que exista uma lista vinculada, que deve ser operada em ordem inversa. A primeira coisa que pensamos é reverter o relacionamento do ponteiro.
Na verdade, é isso. O blogueiro é uma única operação de ordem reversa da lista vinculada com esse objetivo.
Nó pre = null; node post = null; while (head! = Null) {post = head.next; cabeça.Next = pré; pré = cabeça; cabeça = post;}Este é o núcleo da ordem reversa. Vamos explicar passo a passo.
No início, o pré e o post estão definidos como nulos. Isso é necessário porque, após a linha de execução do código da cabeça.
Imagine que o próximo no final da lista de links original também é um nulo? A verdade aqui é a mesma.
Neste momento, a atualização do pré para o nó da cabeça original também é para se preparar para a próxima etapa da ordem reversa, e a cabeça naturalmente se torna a cabeça original.next.
Desculpe, minha mão tremeu e eu o desenhei errado. Obrigado a todos. A quinta vez no diagrama desenhado à mão indica que o nó pré-nó deve estar na posição do nó 5 e não há cabeça.
Não é difícil ver da lenda que movemos a cabeça para trás repetidamente e atualizamos o pré -nó ao mesmo tempo para alcançar o efeito da ordem reversa.
Código
Lista de pacotes; public class Reverselist {public static void main (string [] args) {nó head = new node (1); int [] value = {2,3,4,5}; node temp = head; para (int i = 0; i <value.length; i ++) {node node = new node (node [i]; temp.next;} printlist (cabeça); // inverso a ordem da saída Uma única lista de lista vinculada = reversa (cabeça); printlist (cabeça); // reverter a cabeça novamente = reversesingLelist (cabeça de cabeça); head. head.Next;} System.out.println ();} nó estático public estático reverso (cabeça do nó) {node pre = null; node post = null; while (head! = null) {post = head.next; head.next = pré; pré; pré; null; while (head! = null) {next = head.next; head.next = pre; pre; head; head;teste
Após o teste, a saída do código está correta.
1 2 3 4 5
5 4 3 2 1
1 2 3 4 5
Para ajudar a entender, aqui está outro exemplo:
/** * Java implementa a ordem reversa de listas vinculadas * @Author Administrator * */public class SingleLinkedRevery {class node {int data; node a seguir; public node (int dados) {this.data = data;}} public static void main (string [] args) {singLelinkEdReverse; slr.new nó (0); para (int i = 1; i <10; i ++) {nó p = slr.new node (i); cauda.next = p; cauda = p;} cauda = cabeça; while (cauda! while (head! = null) {System.out.print (head.data+""); head = head.next;}} nó estático privado reverso (cabeça do nó) {nó p1, p2 = null; p1 = head; while (head.next! = null) {p2 = head.next; p2;}}Resultados do teste:
0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0
Resumir
O exposto acima é o conteúdo inteiro deste artigo sobre o exemplo de código de uso de pedidos reversos das listas vinculadas Java Single. Espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!