Each node in a list consists of at least three parts:
1. Data 2. Pointer to the previous node 3. pointer to the next node
// A Doubly Linked list node
struct DoublyLinkedList
{
int val;
struct DoublyLinkedList *next, *pre;
};
// Doubly Linked list class
class DoublyLinkedList
{
// head of list
Node head;
// Node class
class Node
{
int val;
Node next, pre;
// Constructor to create a new node
Node(int v) {
val = v;
}
}
}
# Node class
class Node:
# Function to initialize the node object
def __init__(self, v):
self.val = v # Assign value
self.next = None # Initialize next as null
# Doubly Linked List class
class DoublyLinkedList:
# Function to initialize the Linked List
def __init__(self):
self.head = None
Problem | Score | Companies | Time | Status |
---|---|---|---|---|
Sort Binary Linked List | 200 |
|
33:21 | |
Partition List | 275 |
|
49:36 | |
Insertion Sort List | 300 |
|
49:25 | |
Sort List | 350 |
|
59:53 |
Problem | Score | Companies | Time | Status |
---|---|---|---|---|
Palindrome List | 200 |
|
47:06 | |
Remove Duplicates from Sorted List II | 300 |
|
57:51 | |
Merge Two Sorted Lists | 300 |
|
29:11 | |
Remove Duplicates from Sorted List | 300 |
|
17:58 | |
Remove Nth Node from List End | 350 |
|
27:38 |
Problem | Score | Companies | Time | Status |
---|---|---|---|---|
K reverse linked list | 200 |
|
60:30 | |
Even Reverse | 200 |
|
45:58 | |
Swap List Nodes in pairs | 350 |
|
33:34 | |
Rotate List | 350 |
|
33:58 |
Problem | Score | Companies | Time | Status |
---|---|---|---|---|
Kth Node From Middle | 200 |
|
30:12 | |
Reverse Alternate K Nodes | 300 |
|
54:08 | |
Reverse Link List II | 450 |
|
57:24 | |
Reorder List | 600 |
|
57:10 |
Problem | Score | Companies | Time | Status |
---|---|---|---|---|
Add Two Numbers as Lists | 250 |
|
43:07 | |
List Cycle | 600 |
|
39:15 |