修正:
リンク #1 http://play.golang.org/p/CKRNyWYF8X
リンク #2 http://play.golang.org/p/oT2yKzFwep
最初のリンクから、パニックエラーはこれから来ると確信しています
func (A *DoublyLinkedList) AddHead(input_value interface{}) {
temp_node := &Node{value: input_value, prev: nil, next: A.head}
original_head_node := A.head
original_head_node.prev = temp_node
A.length++
}
しかし、これを二重連結リストに使用すると、少し後でパニックになります。以下のこれは元のヘッドを前のポインターに接続しないため、まだ失敗します。
func (A *DoublyLinkedList) AddHead(input_value interface{}) {
A.head = NewNode(input_value, nil, A.head)
A.length++
}
これがその一つです。これには同様の問題があります。
cannot assign to target_node.GetPrevNode().GetNextNode()
このようにポインター参照をサポートしていませんか? ポインターを取得する必要があるたびに新しい変数を割り当てるだけで、これを修正しました。しかし、一番上の私の最初の質問はまだコンパイルされません。
要するに、Go で新しい要素を追加するときに双方向リンク リストを接続するにはどうすればよいですか?