Skip to content

Commit 1a4b697

Browse files
Jeehay28Jeehay28
authored andcommitted
Add reverse-linked-list solution in TypeScript
1 parent 1cf59f6 commit 1a4b697

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

reverse-linked-list/Jeehay28.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
class ListNode {
2+
val: number;
3+
next: ListNode | null;
4+
constructor(val?: number, next?: ListNode | null) {
5+
this.val = val === undefined ? 0 : val;
6+
this.next = next === undefined ? null : next;
7+
}
8+
}
9+
10+
// TC: O(n)
11+
// SC: O(1)
12+
function reverseList(head: ListNode | null): ListNode | null {
13+
if (!head) return head;
14+
15+
// 1 -> 2 -> 3 -> 4 -> 5 -> null
16+
17+
// null <- 1
18+
// prev curr
19+
20+
// null <- 1 <- 2
21+
// prev cur
22+
23+
let prev: ListNode | null = null;
24+
let curr: ListNode | null = head;
25+
26+
while (curr) {
27+
const tempNext: ListNode | null = curr.next; // 2 -> 3 -> 4 -> 5 -> null
28+
curr.next = prev; // curr: 1 -> null
29+
prev = curr; // curr: 1 -> null, 2 -> 1 -> null
30+
curr = tempNext;
31+
}
32+
33+
return prev;
34+
}

0 commit comments

Comments
 (0)