chore: add reverse to singly linked list (#1241)

* Fix: Reverse Singly Linked List

* Added reverse in SinglyLinkedList

* Added reverse in SinglyLinkedList

* Changes made
This commit is contained in:
Khushi Shukla
2022-10-30 14:46:56 +05:30
committed by GitHub
parent b88128dd97
commit c5101e3e2b
4 changed files with 50 additions and 0 deletions

View File

@ -0,0 +1,16 @@
/** A LinkedList based solution to reverse a number
Problem Statement: Given a number such that each of its digit is stored in a singly linked list. Reverse the linked list and return the head of the linked list Link for the Problem: https://leetcode.com/problems/reverse-linked-list/ */
class ReverseSinglyLinkedList {
solution (head) {
let prev = null
let next = null
while (head) {
next = head.next
head.next = prev
prev = head
head = next
}
return prev
};
}
export { ReverseSinglyLinkedList }

View File

@ -274,6 +274,20 @@ class LinkedList {
log () {
console.log(JSON.stringify(this.headNode, null, 2))
}
// Method to reverse the LinkedList
reverse () {
let head = this.headNode
let prev = null
let next = null
while (head) {
next = head.next
head.next = prev
prev = head
head = next
}
this.headNode = prev
};
}
export { Node, LinkedList }

View File

@ -0,0 +1,14 @@
import { ReverseSinglyLinkedList } from '../ReverseSinglyLinkedList'
import { Node } from '../SinglyLinkedList'
describe('ReverseSinglyLinkedList', () => {
it('Reverse a Number Represented as Linked List', () => {
const headNode = new Node(3)
headNode.next = new Node(4)
headNode.next.next = new Node(1)
const expected = new Node(1)
expected.next = new Node(4)
expected.next.next = new Node(3)
const reverseSinglyLinkedList = new ReverseSinglyLinkedList()
expect(reverseSinglyLinkedList.solution(headNode)).toEqual(expected)
})
})

View File

@ -247,4 +247,10 @@ describe('SinglyLinkedList', () => {
headNode.rotateListRight(5)
expect(headNode.get()).toEqual([20, 30, 40, 50, 10])
})
it('Reverse a Linked List', () => {
const list = new LinkedList([4, 3, 1])
list.reverse()
expect(list.get()).toEqual([1, 3, 4])
})
})