java非再帰的にシングルチェーン表の反転を実現します。

1273 ワード

今夜はIT名企業のアルゴリズムとデータ構造の最適解に関するシングルチェーン表の逆転問題を見ました。後ろが急に明るくなりました。
まず、チェーンタイプについて説明します。
//   
class Node{
    public int data;
    public Node next;
    public Node(int data){
        this.data=data;
    }

}
チェーンを反転する時には、各nodeの「next」の値を更新する必要がありますが、nextの値を更新する前に、nextの値を保存する必要があります。そうしないと続けられません。したがって、私たちは2つのポインタがそれぞれ前のノードと後のノードに向けられ、現在のノード「next」値の更新が完了するたびに、最後のノードに到達するまで、2つのノードを下に移動する必要があります。
コードは以下の通りです
public Node resverList(Node head){
   Node pre=null;
   Node next=null;
    while(head!=null){
        next = head.next;
        head.next=pre;
        pre=head;
        head=next;
    }
    return pre;
}