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;
}