티스토리 뷰
head와 tail에 -1이 계속 유지됩니다.
끝마디를 제외하고
인덱스가 0이 아닌 1부터 시작합니다.
class MyLinkedList {
Node head;
Node tail;
int count;
public MyLinkedList() {
head = new Node(-1);
tail = new Node(-1);
head.next = tail;
tail.prev = head;
count = 0;
}
public int get(int index) {
Node temp = head;
if(count >= index) {
for(int k = 0; k < index; k ++){
if(temp != null)
temp = temp.next;
else
return -1;
}
}
return temp.val;
}
public void addAtHead(int val) {
Node newNode = new Node(val);
newNode.next = head.next;
newNode.prev = head;
if(head.next != null) head.next.prev = newNode;
head.next = newNode;
count++;
}
public void addAtTail(int val) {
Node newNode = new Node(val);
newNode.prev = tail.prev;
newNode.next = tail;
tail.prev.next = newNode;
tail.prev = newNode;
count++;
}
public void addAtIndex(int index, int val) {
if(index < 0 || index > count ) {
return;
}
if(index == 0) {
addAtHead(val);
return;
}
if(index == count) {
addAtTail(val);
return;
}
Node newNode = new Node(val);
Node tempNode = head;
for(int i = 0; i < index; i++) {
tempNode = tempNode.next;
}
newNode.next = tempNode;
if(tempNode.prev.prev != null)
newNode.prev = tempNode.prev.prev;
else
newNode.prev = head;
newNode.prev.next = newNode;
newNode.next.prev = newNode;
count++;
}
public void deleteAtIndex(int index) {
if(count > index) {
Node temp = head;
for(int k = 0; k < index; k++){
temp = temp.next;
}
temp.prev.next = temp.next;
temp.next.prev = temp.prev;
temp = null;
}
count--;
}
public void print() {
Node temp = head;
while(temp != null) {
System.out.print(temp.val + ", ");
temp = temp.next;
}
}
class Node {
int val;
Node next;
Node prev;
public Node(int val) {
this.val = val;
next = null;
prev = null;
}
}
}
반응형
'Java & Kotlin' 카테고리의 다른 글
java logback Library (0) | 2021.09.27 |
---|---|
sql_mode=only_full_group_by (0) | 2021.08.30 |
패스워드 암호화(작성중) (0) | 2021.08.04 |
mybatis mapper 사용기 (0) | 2021.07.31 |
spring test? (0) | 2021.07.29 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자사서비스
- 백준 제로
- 자바
- 다대일
- ㅃ
- JPA
- mappedby
- springboot
- 프로그래머
- jvm
- jre
- 스타트업
- jre11
- 코딩테스트
- JDK
- java8
- 문제
- boot
- 관계설정
- 개발자채용
- 스택
- JDK8
- Spring
- boot 일대다
- 백준
- jdk11
- 백준 제로 자바
- 백엔드
- jre8
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함