このブログは比較的簡単です。わからない場合は、単一のリンクリストの逆の順序を見てください。
逆注文のアイデア
ここで、リンクされたリストがあると仮定します。これは逆順序で操作されます。私たちが考える最初のことは、ポインター関係を逆転させることです。
実際、それだけです。ブロガーは、この目標を伴う単一のリンクリストリバースオーダー操作です。
ノードpre = null; node post = null; while(head!= null){post = head.next; head.next = pre; pre = head; head = post;}これが逆の順序の中核です。段階的に説明しましょう。
最初は、事前とポストがnullに設定されます。これは、head.next = preのコード実行のラインの後、元のヘッドノードの次のnull、つまりリンクリスト全体のヌルになるため、これが必要です。
元のリンクリストの最後の次のものもnullであると想像してください。ここの真実は同じです。
現時点では、元のヘッドノードのプリを更新することも、逆方向の次のステップに備えることであり、ヘッドは自然に元のhead.nextになります。
申し訳ありませんが、私の手は震え、私はそれを間違って描きました。みなさん、ありがとうございます。手描きの図の5回目は、プレノードがノード5の位置にある必要があり、頭がないことを示しています。
伝説から、頭を何度も何度も動かし、同時にプレノードを更新して逆の順序の効果を達成することを確認するのは難しくありません。
コード
パッケージリスト; public class ReverseList {public static void main(string [] args){node head = new node(1); int [] value = {2,3,4,5}; node temp = head; for(int i = 0; i <値。 temp.next;} printlist(head); // inverse of output of output of single linked list head = reverse(head); printlist(head); // revers the head = verversesinglelist(head); printlist(head);} public static void printlist(node head){while!= null) head.next;} system.out.println();} public staticノードリバース(ノードヘッド){node pre = null; node post = null; while(head!= null){post = next; head.next = pre = head; head = post;} return return pre = node nude reversesingingnode( null; while(head!= null){next = head.next; head.next = pre = head; head = next;} class node {public int value; public node next; public node(int value){this.value = value;}}}}}}テスト
テスト後、コード出力は正しいです。
1 2 3 4 5
5 4 3 2 1
1 2 3 4 5
理解するために、ここに別の例があります:
/** * Javaは、単一のリンクリストの逆順序を実装します * @Author Administrator * * */public class singlelelinkedReverse {class node {int data; node next; public node(int data){this.data = data;}} public static void main( slr.new node(0); for(int i = 1; i <10; i ++){node p = slr.new node(i); tael.next = p; tail = p;} tail = head; while(head!= null){system.out.print(head.data+""); head = head.next;}} private static node Reverse(node head){node p1、p2 = null; p1 = head; p2;}}テスト結果:
0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0
要約します
上記は、Javaシングルリンクリストの逆注文使用のコード例に関するこの記事の内容全体です。私はそれが誰にでも役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!