원소의 삽입


L.insertAt(pos, newNode)

... -> pos - 1 -> pos -> ...

주의사항


  1. 삽입하려는 위치가 리스트 맨 앞일 때
  1. 삽입하려는 위치가 리스트 맨 끝일 때
  1. 빈 리스트에 삽입하려고 할 때
def insertAt(self, position, newNode):
  prev = self.getAt(position - 1)
	if position < 1or position > self.nodeCount + 1:
		return False
	# 삽입하려는 위치가 맨 앞일 경우
	if position == 1:
	  newNode.next = self.head
	  self.head = newNode
	# 삽입하려는 위치가 맨 뒤일 경우
	elif position == self.nodeCount + 1:
	  self.tail = newNode
	  prev.next = newNode
	# 삽입하려는 위치가 중간일 경우
	else:
	  newNode.next = prev.next
	  prev.next = newNode
	
  self.nodeCount += 1
	return True

빈 리스트에 노드를 삽입하고 Head, Tail을 출력해보니 Tail이 설정되지 않은 것

if문이 elif, else를 이용해서 한 분기에 처리했더니 빈 리스트에 삽입할 때 head는 맨 앞에 삽입하는 경우에 해당하여 제대로 설정이 되었으나 tail은 넘어가버린 것