Javaはシングルチェーン表の反転操作を実現します。


シングルチェーンテーブルは、共通のデータ構造であり、各ノードは、ポインタで接続されています。一つはデータドメインであり、ノードデータを記憶するために構成されています。第二は、ポインタドメインであり、次のノードのアドレスを格納するために使用される。Javaでは以下のように定義されています。
public class Node {
    
    private Object data;//   
    private Node next;//   

    public Node(Object data){
        this.data = data;
    }

    public Node(Object data,Node next){
        this.data = data;
        this.next = next;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    public Node getNext() {
        return next;
    }

    public void setNext(Node next) {
        this.next = next;
    }

}
       シングルチェーン表の反転操作はjava開発の試験問題です。私は面接の時にこの問題でqaqを虐待されたことがあります。
        まず考えを言います。シングルチェーンテーブルとは、各ノードのポインタ領域をもとのノードから次のノードに向けて指し示すことです。しかし、シングルチェーンテーブルは前のノードのポインタ領域を指していないので、前のノードに向けられたポインタpreを追加して、各ノードの前のノードを記憶する必要がある。また、現在のノードを保存するポインタcurと、次のノードのnextを定義する必要があります。この3つのポインタを定義した後、シングルチェーンテーブルを巡回して、現在のノードのポインタ領域を前のノードに向けて、その後、3つのポインタを定義して後ろに移動します。最後のノードが停止するまで。
        OK、考えを言い終わったら、直接コードをかけます。
public static Node reverseListNode(Node head){
        //            ,        
        if (head == null || head.getNext() == null){
            return head;
        }
        //       
        Node preNode = null;
        //      
        Node curNode = head;
        //       
        Node nextNode = null;

        while (curNode != null){
            nextNode = curNode.getNext();//nextNode        
            curNode.setNext(preNode);//     next        
            preNode = curNode;//preNode       
            curNode = nextNode;//curNode      
        }

        return preNode;
    }