Skip to content

Commit 3e789c4

Browse files
committed
update readme
1 parent 30091ed commit 3e789c4

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<h1 align="center">Merge Two Sorted Source</h1>
2+
3+
[What It Is](#what-it-is)
4+
5+
## What It Is
6+
7+
Write a `SortedMerge()` function that takes two lists, each of which is sorted in increasing order, and merges the two together into one list which is in increasing order. `SortedMerge()` should return the new list. The new list should be made by splicing
8+
together the nodes of the first two lists.
9+
10+
> * Input: LinkedList a `5->10->15`
11+
> * Input: LinkedList b `2->3->20`
12+
> * Output: `2->3->5->10->15->20`
13+
14+
There are many cases to deal with: either `a` or `b` may be empty, during processing either `a` or `b` may run out first, and finally there’s the problem of starting the result list empty, and building it up while going through `a` and `b`.
15+
16+
METHOD 1 (Using Dummy Nodes)
17+
--------------------------
18+
19+
The strategy here uses a temporary dummy node as the start of the result list. The pointer Tail always points to the last node in the result list, so appending new nodes is easy.
20+
The dummy node gives tail something to point to initially when the result list is empty. This dummy node is efficient, since it is only temporary, and it is allocated in the stack. The loop proceeds, removing one node from either `a` or `b`, and adding it to tail. When
21+
we are done, the result is in dummy.next
22+
23+
**Algorithm Complexity**
24+
25+
| Complexity | Notation |
26+
| ----------------- |:---------:|
27+
| `Time Complexity` | `O(n)` |

linked-list-reverse/README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<h1 align="center">LinkedList Reverse Source</h1>
2+
3+
[What It Is](#what-it-is)
4+
5+
## What It Is
6+
7+
Given pointer to the head node of a linked list, the task is to reverse the linked list. We need to reverse the list by changing links between nodes.
8+
9+
10+
> * Input: Head of following linked list `[1->2->3->4->NULL]`
11+
> * Output: Linked list should be changed to `[4->3->2->1->NULL]`
12+
13+
> * Input: Head of following linked list `[1->2->3->4->5->NULL]`
14+
> * Output: Linked list should be changed to `[5->4->3->2->1->NULL]`
15+
16+
**Algorithm Complexity**
17+
18+
| Complexity | Notation |
19+
| ----------------- |:---------:|
20+
| `Time Complexity` | `O(n)` |
21+
| `Auxiliary Space` | `O(1)` |

0 commit comments

Comments
 (0)