# Linked List
###### tags: `資料結構與演算法`
Linked List 類似 Array
```mermaid
graph LR
A -- next --> B --> C --> D --> Null
A(nodeA)
B(nodeB)
C(nodeC)
D(nodeD)
```
```javascript=
function LinkedNode(val, next) {
this.val = val || -1
this.next = next || null
}
let list = new LinkedNode
let currentNode = list
while(current)
```
- 優點
+ 可以無限增加元素
+ 執行插入跟刪除時特別快
- 缺點
+ 需要更多的 memory
+ 一定要從頭開始讀,儲存方式是不連續的(記憶體位置分散)
+ 反向讀取的話會很麻煩
#### Doubly Linked List : 進階的 Linked List
有往回指的屬性
```mermaid
graph LR
A --> B -- next --> C --> D --> E
D --> C --> B --> A
A --> F
A(nodeA)
B(nodeB)
C(nodeC)
D(nodeD)
E[null]
F[null]
```