본문 바로가기
Programming/Data Structure

[Hackerrank] ReverseADoublyLinkedList

by 읽고 쓰는 개발자 2020. 12. 2.

www.hackerrank.com/challenges/reverse-a-doubly-linked-list/problem

Reverse a doubly linked list | HackerRank

Given the head node of a doubly linked list, reverse it.

www.hackerrank.com

package exam.complete;
//https://www.hackerrank.com/challenges/reverse-a-doubly-linked-list/problem

import exam.DoublyLinkedListNode;

public class ReverseADoublyLinkedList {
    public static void main(String[] args) {
        DoublyLinkedListNode node4 = new DoublyLinkedListNode(4, null, null);
        DoublyLinkedListNode node3 = new DoublyLinkedListNode(3, node4, null);
        DoublyLinkedListNode node2 = new DoublyLinkedListNode(2, node3, null);
        DoublyLinkedListNode node1 = new DoublyLinkedListNode(1, node2, null);
        node2.prev = node1;
        node3.prev = node2;
        node4.prev = node3;

        DoublyLinkedListNode node = reverse(node1);
        System.out.println(node.data);
    }
    static DoublyLinkedListNode reverse(DoublyLinkedListNode head) {
        DoublyLinkedListNode nextNode = head.next;
        while (head.next != null) {
            DoublyLinkedListNode temp = head.prev;
            head.prev = head.next;
            head.next = temp;
            head = nextNode;
            nextNode = nextNode.next;
        }

        DoublyLinkedListNode temp  = head.prev;
        head.prev = null;
        head.next = temp;
        return head;
    }

}

'Programming > Data Structure' 카테고리의 다른 글

[Hackerrank] ReversePrint  (0) 2020.12.02
[Hackerrank] Reversealinkedlist  (0) 2020.12.02
[Hackerrank] PrintLinkedList  (0) 2020.12.02
[Hackerrank] MergeTwoSortedLinkedLists  (0) 2020.12.02
[Hackerrank] MatchingStrings  (0) 2020.12.02