이중 연결 리스트에서 노드 삭제는 3가지를 생각해야 합니다.
- 헤드 노드 삭제
- 중간 노드 삭제
- 마지막 노드 삭제
public class DoublyLinkedList {
static Node head;
public static void main(String[] args) {
push(1);
push(2);
push(3);
deleteNode(head.next);
printList(head);
}
static void push(int data) {
Node newNode = new Node(data);
newNode.next = head;
if(head != null) head.prev = newNode;
head = newNode;
}
static void deleteNode(Node del) {
if(head == null || del == null) return;
if(head == del) {
head = del.next;
}
if(del.next != null) {
del.next.prev = del.prev;
}
if(del.prev != null) {
del.prev.next = del.next;
}
}
static class Node {
int data;
Node prev;
Node next;
public Node(int data) {
this.data = data;
this.prev = null;
this.next = null;
}
}
static void printList(Node n) {
while(n != null) {
System.out.println(n.data);
n = n.next;
}
}
}
'알고리즘 > 자료구조' 카테고리의 다른 글
원형 단일 연결 리스트 데이터 추가, 삭하는 방법 구현 (0) | 2024.04.22 |
---|---|
원형 연결 리스트 특징, 정의, 장단점 (0) | 2024.04.22 |
이중 연결 리스트에서 데이터 추가하는 4가지 방법 (0) | 2024.04.22 |
이중 연결 리스트 특징, 정의 (0) | 2024.04.22 |
단일 연결 리스트(Singly Linked List) 3가지 삭제 방법 (1) | 2024.04.19 |