Skip to content

Commit ecae4b3

Browse files
committed
add reverse linked list code
1 parent 33287c9 commit ecae4b3

File tree

7 files changed

+137
-0
lines changed

7 files changed

+137
-0
lines changed

‎patterns/c#/ReverseList.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
public class ListNode {
2+
public int val;
3+
public ListNode next;
4+
public ListNode(int val = 0, ListNode next = null) {
5+
this.val = val;
6+
this.next = next;
7+
}
8+
}
9+
10+
public class Solution {
11+
public ListNode ReverseList(ListNode head) {
12+
ListNode prev = null;
13+
ListNode curr = head;
14+
15+
while (curr != null) {
16+
ListNode next = curr.next;
17+
curr.next = prev;
18+
prev = curr;
19+
curr = next;
20+
}
21+
return prev;
22+
}
23+
}

‎patterns/c++/ReverseList.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
struct ListNode {
2+
int val;
3+
ListNode* next;
4+
ListNode(int x) : val(x), next(nullptr) {}
5+
};
6+
7+
ListNode* reverseList(ListNode* head) {
8+
ListNode* prev = nullptr;
9+
ListNode* curr = head;
10+
11+
while (curr != nullptr) {
12+
ListNode* next = curr->next;
13+
curr->next = prev;
14+
prev = curr;
15+
curr = next;
16+
}
17+
return prev;
18+
}

‎patterns/go/reverse_list.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package main
2+
3+
type ListNode struct {
4+
Val int
5+
Next *ListNode
6+
}
7+
8+
func reverseList(head *ListNode) *ListNode {
9+
var prev *ListNode = nil
10+
curr := head
11+
12+
for curr != nil {
13+
next := curr.Next
14+
curr.Next = prev
15+
prev = curr
16+
curr = next
17+
}
18+
return prev
19+
}

‎patterns/java/ReverseLinkedList.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package patterns.java;
2+
3+
class ListNode {
4+
int val;
5+
ListNode next;
6+
}
7+
8+
public class ReverseLinkedList {
9+
public ListNode reverseList(ListNode head) {
10+
ListNode prev = null; // Previous node, initially null
11+
ListNode curr = head; // Current node starts from the head
12+
while (curr != null) {
13+
ListNode next = curr.next; // Store next node
14+
curr.next = prev; // Reverse the current node's pointer
15+
prev = curr; // Move prev to current
16+
curr = next; // Move curr to next
17+
}
18+
return prev; // New head of the reversed list
19+
}
20+
}

‎patterns/javascript/reverseList.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
class ListNode {
2+
constructor(val = 0, next = null) {
3+
this.val = val;
4+
this.next = next;
5+
}
6+
}
7+
8+
function reverseList(head) {
9+
let prev = null;
10+
let curr = head;
11+
12+
while (curr !== null) {
13+
let next = curr.next;
14+
curr.next = prev;
15+
prev = curr;
16+
curr = next;
17+
}
18+
return prev;
19+
}

‎patterns/python/reverse_list.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class ListNode:
2+
def __init__(self, val=0, next=None):
3+
self.val = val
4+
self.next = next
5+
6+
def reverse_list(head):
7+
prev = None
8+
curr = head
9+
10+
while curr:
11+
next_node = curr.next
12+
curr.next = prev
13+
prev = curr
14+
curr = next_node
15+
16+
return prev

‎patterns/typescript/reverseList.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class ListNode {
2+
val: number;
3+
next: ListNode | null;
4+
5+
constructor(val: number = 0, next: ListNode | null = null) {
6+
this.val = val;
7+
this.next = next;
8+
}
9+
}
10+
11+
function reverseList(head: ListNode | null): ListNode | null {
12+
let prev: ListNode | null = null;
13+
let curr: ListNode | null = head;
14+
15+
while (curr !== null) {
16+
let next: ListNode | null = curr.next;
17+
curr.next = prev;
18+
prev = curr;
19+
curr = next;
20+
}
21+
return prev;
22+
}

0 commit comments

Comments
 (0)