Skip to content

Commit 27d78df

Browse files
committed
Add reverse linked list
1 parent ef9cf7c commit 27d78df

File tree

2 files changed

+44
-1
lines changed

2 files changed

+44
-1
lines changed

Easy/reverse-linked-list.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
Code
2+
====
3+
4+
```go
5+
/**
6+
* Definition for singly-linked list.
7+
* type ListNode struct {
8+
* Val int
9+
* Next *ListNode
10+
* }
11+
*/
12+
13+
func reverseList(head *ListNode) *ListNode {
14+
curr := head
15+
var prev *ListNode = nil
16+
var next *ListNode = nil
17+
18+
for curr != nil {
19+
next = curr.Next
20+
curr.Next = prev
21+
prev = curr
22+
curr = next
23+
}
24+
25+
head = prev
26+
27+
return head
28+
}
29+
```
30+
31+
Solution in mind
32+
================
33+
34+
- Keep track of 3 pointer, `prev`, `curr` and `next`. With `curr` being initialised to `head` and the others being `nil`.
35+
36+
- Move through `curr` till we reach the end of linked list.
37+
38+
- Set `next` as `curr.Next`. Now the current node's pointer can be set to the previous node.
39+
40+
- After updating the current node's pointer, move `curr` to `next` and `prev` to `curr`.
41+
42+
- Finally, set the new `head` as `prev`, this will update the head to the new beginning of the list.

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Link to profile, [bhargavsnv100](https://leetcode.com/bhargavsnv100/)
77

88
| [Easy](#easy) | [Medium](#medium) | [Hard](#hard) |
99
|---------------|-------------------|---------------|
10-
| 44 | 69 | 12 |
10+
| 45 | 70 | 12 |
1111

1212
Problems finished
1313
=================
@@ -48,6 +48,7 @@ Easy
4848
- [remove-duplicates-from-sorted-list.md](Easy/remove-duplicates-from-sorted-list.md)
4949
- [remove-element.md](Easy/remove-element.md)
5050
- [reverse-integer.md](Easy/reverse-integer.md)
51+
- [reverse-linked-list.md](Easy/reverse-linked-list.md)
5152
- [roman-to-int.md](Easy/roman-to-int.md)
5253
- [squares-of-a-sorted-array.md](Easy/squares-of-a-sorted-array.md)
5354
- [symmetric-tree.md](Easy/symmetric-tree.md)

0 commit comments

Comments
 (0)