func (l *List) InsertBeforeElement(e *Element, mark *Element) *Element {
	e.Prev = mark.Prev
	e.Next = mark
	e.Next.Prev = e
	e.Prev.Next = e
	l.N++
	return e
}
//InsertBeforeElement InsertBefore inserts an existing element e immediately before mark and returns e.

InsertBeforeElement InsertBefore inserts an existing element e immediately before mark and returns e.
// InsertBeforeElement InsertBefore inserts an existing element e immediately before mark and returns e .
func (l *List) InsertBeforeElement(e *Element, mark *Element) *Element {
	e.Prev = mark.Prev
	e.Next = mark
	e.Next.Prev = e
	e.Prev.Next = e
	l.N++
	return e
}
func ( l * List ) InsertBeforeElement ( e * Element , mark * Element ) * Element { e . Prev = mark . Prev e . Next = mark e . Next . Prev = e e . Prev . Next = e l . N ++ return e }
InsertBeforeElement InsertBefore inserts an existing element e immediately before mark and returns e.
InsertBeforeElement InsertBefore inserts an existing element e immediately before mark and returns e .