Reference: LeetCode

Difficulty: Easy

My Post: My Java Solution (Sentinel, Circular, Doubly Linked List, Size)

## Problem

Design your implementation of the linked list. You can choose to use the singly linked list or the doubly linked list. A node in a singly linked list should have two attributes:

`val`

and`next`

.`val`

is the value of the current node, and`next`

is a pointer/reference to the next node. If you want to use the doubly linked list, you will need one more attribute`prev`

to indicate the previous node in the linked list. Assume all nodes in the linked list are 0-indexed.

**Example:**

1 | MyLinkedList linkedList = new MyLinkedList(); |

## Analysis

- I use a
`sentinel`

and make the list`circular`

. - I also add
`prev`

pointer to implement doubly linked list.

**Test Case:**

1 | ["MyLinkedList","addAtHead","addAtTail","addAtIndex","get","deleteAtIndex","get"] |

One of the test case is wrong. The judge assumes that `addAtIndex`

returns the first element when the input is negative.

1 | class MyLinkedList { |