この問題の解決策を考えていました。循環リンクリストにノードを挿入するアルゴリズムを実装する
私の入力:
1.最後のノードを指すテールポインタを持っています。
2.最後のポインタが分かれば、簡単に隣に新しいノードを追加できます。
Void Insert(Node N)
{
if (head == null) // linked list is empty
{
head = N; tail = N; tail.Next = head;
}
else
{
Node temp = tail.Next; // since this is circular tail will point to head
Tail.Next = N;
N.Next = temp; // correct
tail = N;
}
}
テールポインタを使用しなくても、より良い解決策を考えることができますか?また、トラバースしない問題でも述べられているように? これはインタビューの質問ですが、最適なソリューションを見つけるためにはいくつかの入力が必要です。
挿入ポイントはどこですか? – Cambium
最後のノードの後に – Learner
バグがあります.N.Next = tempであるはずです。それを除けば、それは私に物事をするための非常に良い方法と思われます... – Jaime