Rumah  >  Soal Jawab  >  teks badan

Struktur data - Bagaimanakah senarai pautan terbalik Java dilaksanakan?

public class Node {
    public int value;
    public Node next;

    public Node(int data) {
        this.value = data;
    }


    public Node reverse(Node head) {
        Node pre = null;
        Node next = null;

        while (head != null) {
            next = head.next;
            head.next = pre;
            pre = head;
            head = next;

        }
        return pre;


    }

Bagaimanakah kod ini terbalik dalam gelung while. Saya ingin menyahpenyahnya beberapa kali dan masih tidak dapat mengetahui perkara yang berlaku

習慣沉默習慣沉默2675 hari yang lalu841

membalas semua(2)saya akan balas

  • 大家讲道理

    大家讲道理2017-06-23 09:15:13

    Akan lebih mudah untuk memahami tujuan jika anda merujuknya. Bahagian yang paling mengelirukan adalah untuk menanganinya dari kanan ke kiri, kerana anda perlu menyimpan perkara di belakang dahulu, jika tidak, ia akan ditimpa dan hilang.

     pre        head       
    +----+     +----+  +> +----+
    |    |     |    |  |  |    |
    |    |     |    |  |  |    |
    |    |     |    |  |  |    |
    +----+     +----+  |  +----+
    |    |     |    |  |  |    |
    |    |     |    |  |  |    |
    +----+     +-+--+  |  +----+
                 |     |
                 +-----+
    
     pre        head       next        next = head.next;
    +----+     +----+  +> +----+
    |    |     |    |  |  |    |
    |    |     |    |  |  |    |
    |    |     |    |  |  |    |
    +----+     +----+  |  +----+
    |    |     |    |  |  |    |
    |    |     |    |  |  |    |
    +----+     +-+--+  |  +----+
                 |     |
                 +-----+
    
     pre        head       next
    +----+ <+  +----+     +----+
    |    |  |  |    |     |    |
    |    |  |  |    |     |    |
    |    |  |  |    |     |    |
    +----+  |  +----+     +----+
    |    |  |  |    |     |    |
    |    |  |  |    |     |    |
    +----+  |  +-+--+     +----+
            |    |                     head.next = pre;
            +----+
                           next
                pre        head        pre = head;
    +----+ <+  +----+     +----+       head = next;
    |    |  |  |    |     |    |
    |    |  |  |    |     |    |
    |    |  |  |    |     |    |
    +----+  |  +----+     +----+
    |    |  |  |    |     |    |
    |    |  |  |    |     |    |
    +----+  |  +-+--+     +----+
            |    |
            +----+
    

    balas
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-23 09:15:13

    Ps: Adalah disyorkan untuk mengetahui lebih lanjut tentang senarai terpaut dahulu

    balas
    0
  • Batalbalas