// O(1) public void Remove(MyLinkedListNode <T> room) { // 방리스트에서 첫번째 방을 제거해야하면, 두번째 방을 첫째 방으로 바꿔준다. if (Head == room) { Head = Head.Next; } // 기존의 마지막 방의 이전 방을 마지막 방으로 인정한다. if (Tail == room) { Tail = Tail.Prev; } if (room.Prev != null) { room.Prev.Next = room.Next; } if (room.Next != null) { room.Next.Prev = room.Prev; } Count--; }
// O(1) public MyLinkedListNode <T> AddLast(T data) { MyLinkedListNode <T> newRoom = new MyLinkedListNode <T>(); newRoom.Data = data; // 방 리스트에 방이 없었다면 if (Head == null) { Head = newRoom; } // 기존의 마지막 방에 새로 추가된 방을 연결해준다. if (Tail != null) { Tail.Next = newRoom; newRoom.Prev = Tail; } Tail = newRoom; Count++; return(newRoom); }