一方向および双方向リンクリストリンクリストをリバース

 

問題の説明:

一方向および双方向リンクリストリンクリストを逆にします。

 

アルゴリズム:

1.単鎖逆転

パブリッククラスノード{ 

公共のint値。
次のパブリック・ノード。

パブリック・ノード(int値){
this.value =値。
}
}


パブリック・ノードreverseList(ノードヘッド){

ノードは事前= NULL;
ノードの横= NULL;
(!ヘッド= NULL){ながら

次= head.next。
head.next =前;
事前=ヘッド。
ヘッド=次回。
}
事前返します。
}

2.リバース二重リンクリスト

パブリッククラスDoubleNode { 

公共のint値。
公共DoubleNode最後。
次の公共DoubleNode。

公共DoubleNode(int値){
this.value =値。
}
}


パブリックDoubleNode reverseList(DoubleNodeヘッド){

DoubleNodeが予め= NULL;
DoubleNode次= NULL;

(!ヘッド= NULL){ながら

次= head.next。
head.next =前;
head.last =次回; //注意区别
前=ヘッド。
ヘッド=次回。
}

事前返します。
}

アルゴリズム分析:

1.単鎖逆転

(1)一本鎖は、反転後の最初のノードリンクリストとして、二つの追加の変数ノード、ヘッドが一時的に格納されている次のノードへのノードと、反転しました。

リストをマークする方法を、分割する方法、(2)注意事項は、第1ノードのリストを生成する方法の逆転と絶えず増加要素の後に、逆転されていません。

2.リバース二重リンクリスト

二重リンクリスト単一リンクリスト反転差は、主に現在のための「先行ノード」をノードセットにあるが、ときにその前駆体ノードの現在のノードのノードが反転された後。

 

おすすめ

転載: www.cnblogs.com/heibingtai/p/12649961.html