Struktur data - Bagaimanakah senarai pautan terbalik Java dilaksanakan?
習慣沉默
習慣沉默 2017-06-23 09:13:13
0
2
893
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

習慣沉默
習慣沉默

membalas semua(2)
大家讲道理

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;
|    |  |  |    |     |    |
|    |  |  |    |     |    |
|    |  |  |    |     |    |
+----+  |  +----+     +----+
|    |  |  |    |     |    |
|    |  |  |    |     |    |
+----+  |  +-+--+     +----+
        |    |
        +----+
过去多啦不再A梦

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan