문제링크: www.hackerrank.com/challenges/reverse-a-doubly-linked-list/problem
오랜만에 자료구조를 생각하려니까 머리가 아팠다. 해커랭크에 좋은 자료구조 연습 문제들이 있어서 더 풀어보려 한다.
처음에 head에는 쓰레기 데이터가 있고 next부터 출력하는거라 가정하고 문제를 풀었더니 당연히 틀렸다.
출력을 해보니 모든 노드에는 데이터가 있었다.
풀이법을 말로 설명하는 것보다 코드를 보는것이 깔끔하겠다.
// Complete the reverse function below.
/*
* For your reference:
*
* DoublyLinkedListNode {
* int data;
* DoublyLinkedListNode next;
* DoublyLinkedListNode prev;
* }
*
*/
static DoublyLinkedListNode reverse(DoublyLinkedListNode head) {
DoublyLinkedListNode newHead = head;
head.prev = head.next;
head.next = null;
head = head.prev;
while(head!=null){
head.prev = head.next;
head.next = newHead;
newHead = head;
head = head.prev;
}
return newHead;
}
'알고리즘 > 해커랭크' 카테고리의 다른 글
[해커랭크] Is This a Binary Search Tree? (0) | 2021.01.12 |
---|---|
[해커랭크] Cycle Detection [JAVA] (0) | 2021.01.07 |
[해커랭크] Sparse Arrays [JAVA] (0) | 2021.01.07 |
[해커랭크] Roads and Libraries [JAVA] (0) | 2021.01.07 |
Forming a Magic Square (0) | 2020.11.18 |