Skip to content

Commit bd40790

Browse files
reverse singlylinkedlist
1 parent 5b3273f commit bd40790

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

src/main/java/com/examplehub/datastructures/linkedlist/SinglyLinkedList.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,25 @@ public E deleteNth(int index) {
179179
return deleteNode.data;
180180
}
181181

182+
/**
183+
* Reverse singlyLinkedList
184+
*
185+
* @return reversed singlyLinkedList.
186+
*/
187+
public SinglyLinkedList<E> reverse() {
188+
Node<E> prev = null;
189+
Node<E> current = this.head;
190+
Node<E> next = null;
191+
while (current != null) {
192+
next = current.next;
193+
current.next = prev;
194+
prev = current;
195+
current = next;
196+
}
197+
this.head = prev;
198+
return this;
199+
}
200+
182201
@Override
183202
public String toString() {
184203
StringJoiner joiner = new StringJoiner("->");

src/test/java/com/examplehub/datastructures/linkedlist/SinglyLinkedListTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,4 +174,12 @@ void testInsertTail() {
174174
singlyLinkedList.insertTail("1", "2", "3", "4", "5");
175175
assertEquals("1->2->3->4->5->NULL", singlyLinkedList.toString());
176176
}
177+
178+
@Test
179+
void testReverse(){
180+
SinglyLinkedList<String> singlyLinkedList = new SinglyLinkedList<>();
181+
singlyLinkedList.insertTail("1", "2", "3", "4", "5");
182+
assertEquals("1->2->3->4->5->NULL", singlyLinkedList.toString());
183+
assertEquals("5->4->3->2->1->NULL", singlyLinkedList.reverse().toString());
184+
}
177185
}

0 commit comments

Comments
 (0)