자료구조 & 알고리즘
[자료구조] 선형자료구조 연결리스트(Linked List) 노드(Node) 위치값으로 삭제하기
진기명기
2023. 3. 8. 19:05
🫠 선형자료구조 - 연결리스트(Linked List) 내에 있는 노드(node) 위치값으로 삭제하기
❗️ 노드 value값으로 삭제하는 방법도 확인!
❗️ link3 연결리스트를 이어서 작성(두 번째 링크 확인하기)
[자료구조] 선형자료구조 연결리스트(Linked List) 노드(Node) 삭제하기
🫠 선형자료구조 - 연결리스트(Linked List) 내에 있는 노드(node) value값으로 삭제하기 ❗️ 지난 시간에 포스팅한 아래 링크에서 이어서 작성(확인하자!) ⬇️⬇️⬇️ https://cyjcyj.tistory.com/98 [자료
cyjcyj.tistory.com
[자료구조] 선형자료구조 연결리스트(Linked List) 원하는 위치에 노드(Node) 추가하기
🫠 선형자료구조 - 연결리스트(Linked List) 원하는 위치에 노드(Node) 추가하기 ❗️ 연결리스트에 노드 추가하는 또 다른 방법 확인 ⬇️⬇️⬇️ https://cyjcyj.tistory.com/97 [자료구조] 선형자료구조
cyjcyj.tistory.com
🫠 연결리스트(Linked List) 내에 존재하는 노드(node)를 위치값을 통해 삭제하기
> removeAt 메서드
/* 노드의 위치 값을 받아 삭제하기 */
LinkedList.prototype.removeAt = function(position = 0){
// 위치값이 0보다 작거나 연결리스트보다 길이가 길 경우 null
if(position < 0 || position >= this.length){
return null
}
let current = this.head, index = 0, prev
// 삭제하려는 노드의 위치가 0이라면
if(position === 0){
this.head = current.next
} else{ // while문이 돌면서 증가하는 index가 해당 위치값보다 작을때까지
while(index++ < position){
prev = current
current = current.next
}
// prev - current(remove해야할 대상) - current.next인 경우
prev.next = current.next
}
this.length--
return current.data
}
👉🏻 output : 설명 주석 처리 확인
✅ 삭제하려는 해당 노드의 위치값을 받아 연결리스트 내에서 찾아 삭제하는 removeAt 메서드를 작성하였다.
❗️ removeAt을 통해 원하는 위치값의 노드를 삭제해 보자
link3.printNode() // 100 -> 70 -> 50 -> 30 -> 10 -> null
console.log(link3.removeAt(1000)) // null
link3.removeAt(4)
link3.printNode() // 100 -> 70 -> 50 -> 30 -> null
link3.removeAt(2)
link3.printNode() // 100 -> 70 -> 30 -> null
link3.removeAt(0)
link3.printNode() // 70 -> 30 -> null
console.log(link3.size()) // 2
👉🏻 output : 주석 처리 확인
✅ 1000을 삭제하려 했으나, 연결리스트 내에 해당 node가 없기 때문에 null이 반환되었다.
✅ 10 -> 50 -> 100 순서대로 removeAt을 통해 삭제된 것을 확인할 수 있다.