From d1e8f9afa6b39e009feaeed9916a27c808554a67 Mon Sep 17 00:00:00 2001 From: TheGeniusOfEternity Date: Sat, 15 Aug 2026 14:30:13 +0300 Subject: [PATCH 1/3] test(neetcode|roadmap|reversed-linked-list): testcases --- .../reversed-linked-list/solution.test.ts | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/neetcode/linked-list/reversed-linked-list/solution.test.ts diff --git a/src/neetcode/linked-list/reversed-linked-list/solution.test.ts b/src/neetcode/linked-list/reversed-linked-list/solution.test.ts new file mode 100644 index 0000000..204a2f5 --- /dev/null +++ b/src/neetcode/linked-list/reversed-linked-list/solution.test.ts @@ -0,0 +1,59 @@ +import { ListNode, reverseList } from './solution'; + +const createList = (values: number[]): ListNode | null => { + const dummy = new ListNode(); + let tail = dummy; + + for (const value of values) { + tail.next = new ListNode(value); + tail = tail.next; + } + + return dummy.next; +}; + +const listToArray = (head: ListNode | null): number[] => { + const values: number[] = []; + let current = head; + + while (current) { + values.push(current.val); + current = current.next; + } + + return values; +}; + +describe('Reversed Linked List | NeetCode | RoadMap | Testcases', () => { + test('#1 Reverses a linked list', () => { + const head = createList([0, 1, 2, 3]); + + expect(listToArray(reverseList(head))).toEqual([3, 2, 1, 0]); + }); + + test('returns null for an empty list', () => { + expect(reverseList(null)).toBeNull(); + }); + + test('#2 Returns the same node for a single-node list', () => { + const head = new ListNode(42); + + expect(reverseList(head)).toBe(head); + expect(head.next).toBeNull(); + }); + + test('#3 Reverses the existing links instead of creating new nodes', () => { + const first = new ListNode(1); + const second = new ListNode(2); + const third = new ListNode(3); + first.next = second; + second.next = third; + + const reversed = reverseList(first); + + expect(reversed).toBe(third); + expect(third.next).toBe(second); + expect(second.next).toBe(first); + expect(first.next).toBeNull(); + }); +}); From ec4bc120daf27683608e6d5cd268f9d35b0b2161 Mon Sep 17 00:00:00 2001 From: TheGeniusOfEternity Date: Sat, 15 Aug 2026 14:30:53 +0300 Subject: [PATCH 2/3] feat(neetcode|roadmap|reversed-linked-list): solution --- .../reversed-linked-list/solution.ts | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/neetcode/linked-list/reversed-linked-list/solution.ts diff --git a/src/neetcode/linked-list/reversed-linked-list/solution.ts b/src/neetcode/linked-list/reversed-linked-list/solution.ts new file mode 100644 index 0000000..ff02d05 --- /dev/null +++ b/src/neetcode/linked-list/reversed-linked-list/solution.ts @@ -0,0 +1,26 @@ +export class ListNode { + val: number; + next: ListNode | null; + constructor(val = 0, next = null) { + this.val = val; + this.next = next; + } +} + +/** + * @param {ListNode} head - the beginning of a singly linked list + * @return {ListNode} - the new beginning of the reversed list. + */ +export const reverseList = (head: ListNode | null): ListNode | null => { + let prev: ListNode | null = null; + let curr = head; + + while (curr !== null) { + const temp = curr.next; + curr.next = prev; + prev = curr; + curr = temp; + } + + return prev; +}; From 6bc5e701e434ea77d3b02c4065c37caf86ddb5b2 Mon Sep 17 00:00:00 2001 From: TheGeniusOfEternity Date: Sat, 15 Aug 2026 14:31:03 +0300 Subject: [PATCH 3/3] feat(neetcode|roadmap|docs): update table of contents --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 18b5d7d..c597e59 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,8 @@ - [Task #31](src/neetcode/binary-search/search-in-rotated-sorted-array) – _Search In Rotated Sorted Array_ - _[check the task](https://neetcode.io/problems/find-target-in-rotated-sorted-array)_ - [Task #32](src/neetcode/binary-search/time-based-key-value-store) – _Time Based Key Value Store_ - _[check the task](https://neetcode.io/problems/time-based-key-value-store)_ - [Task #33](src/neetcode/binary-search/median-of-two-sorted-arrays) – _Median Of Two Sorted Arrays_ - _[check the task](https://neetcode.io/problems/median-of-two-sorted-arrays)_ +- Linked List + - [Task #34](src/neetcode/linked-list/reversed-linked-list) – _Reversed Linked List_ - _[check the task](https://neetcode.io/problems/reverse-a-linked-list)_ [BigFrontEnd - JavaScript Coding Questions](https://bigfrontend.dev/problem) - [1. implement curry()](src/bigfrontend/javascript/curry) - _Curry Function_ - [check the task](https://bigfrontend.dev/problem/implement-curry)