私はコーディングインタビューブックを解読しています。私は、リンクされたリストの要素を織り込むためのランナー技法の実装にちょっと固執しています。この本は次のようになります:リンクされたリストの要素を製織するためのランナーテクニック
"リンクリストa1-> a2 ....-> b1-> b2 .... bnがあり、それをa1-> b1 - > a2 - > b2 - > ..... an - > bnリンクリストの長さは分かりませんが、偶数であることがわかります。
ポインタp1(高速ポインタ)は、p2が作成する1つの移動ごとに2つの要素ごとに移動します.p1がリンクリストの終わりに達すると、p2が終点になります。各繰り返しで、p2が要素を選択し、p1の後に挿入します。
私は織り始める前の技術を理解しています。だから、右織りの前に、私たちは基本的に私が正しく理解していれば
p1 p2
a1->a2->b1->b2
は今、私はP2で指さに(すなわちb1)を要素を移動し、P1の後にそれを挿入する必要があります(N = 4つの要素のため)持っています、つまり
p1.next = p2
次のリストにつながる(?)
a1->b1->b2
にどのようなアルゴリズムは、ここから進むのでしょうか?
私はthis質問を見つけたが、上記のステップは、私がどのように表示されていない
a1->b1->a2->b2
につながることを示唆しているようです。おそらく私はここで何か基本的なものを見逃しているでしょう
'auto p1_next = p1-> next; auto p2_next = p2-> next; p1→next = p2; p2-> next = p1_next; p1 = p1_next; p2 = p2_next; ' –