C++で不変のリンクリストを逆に印刷する
不変のリンクリストがあるとすると、次のインターフェイスを使用して、各ノードのすべての値を逆に出力する必要があります-
-
ImmutableListNode-これは不変のリンクリストのインターフェースであり、リストの先頭が与えられます。
リンクリストにアクセスするには、次の関数を使用する必要があります-
-
ImmutableListNode.printValue()-これにより、現在のノードの値が出力されます。
-
ImmutableListNode.getNext()-これは次のノードを返します。
したがって、リストが[0、-4、-1、3、-5]の場合、出力は[-5、3、-1、-4、0]
になります。これを解決するには、次の手順に従います-
-
ImmutableListNodeタイプのノードのスタックstを定義します
-
頭がヌルではない間
-
頭をstに挿入します
-
頭:=頭の次
-
-
stが空ではない間
-
スタックトップノードの値を出力します
-
スタックからノードを削除する
-
例(C ++)
理解を深めるために、次の実装を見てみましょう-
class Solution { public: void printLinkedListInReverse(ImmutableListNode* head) { stack <ImmutableListNode*> st; while(head){ st.push(head); head = head->getNext(); } while(!st.empty()){ st.top()->printValue(); st.pop(); } } };
入力
[0,-4,-1,3,-5]
出力
[-5,3,-1,-4,0]
-
C++のリンクリストの代替ノードの合計
この問題では、リンクリストが表示されます。私たちのタスクは、リンクリストの代替ノードの合計を出力することです。 リンクリストは、リンクを介して相互に接続された一連のデータ構造です。 では、問題に戻りましょう。ここでは、リンクリストの代替ノードを追加します。これは、ノードが位置0、2、4、6、…であることを追加することを意味します 問題を理解するために例を見てみましょう。 入力 4 → 12 → 10 → 76 → 9 → 26 → 1 出力 24 説明 considering alternate strings
-
C ++で再帰を使用して、リンクリストの代替ノードを出力します
リンクリストは、要素を連続していないメモリ位置に格納する線形データ構造です。すべての要素には、リンクリストの次の要素へのポインタが含まれています。 例 − この問題では、リンクリストが与えられ、このリンクリストの要素を印刷する必要がありますが、代替要素のみが印刷されます。問題をよりよく理解するために例を見てみましょう。 Input : 2 -> 4 -> 1 -> 67 -> 48 -> 90 Output : 2 -> 1 -> 48 説明 −リンクリストに代替要素を出力します。したがって、1番目、3番目、5番目の要素が印刷されます。