Double Linked List adalah linked list dengan node yang memiliki data dan dua buah reference link (biasanya disebut next dan prev) yang menunjuk ke node sebelum dan node sesudahnya. Pada implementasinya, terdapat dua variasi double linked list yaitu circular dan non-circular layaknya pada single linked list.

Operasi pada Double Linked List
Double linked list memiliki beberapa operasi dasar pada list, misalkan penyisipan, penghapusan, menampilkan maju, dan menampilkan mundur :
Insert First

Penyisipan di awal list, sehingga pointer head juga akan berpindah ke elemen baru.
Insert Last

Penyisipan di akhir list, sehingga pointer tail juga akan berpindah ke elemen baru.
Insert After / Before


gambar 1 : after gambar 2 : before
Penyisipan after/before kurang lebih sama satu sama lain. Pada kasus diatas berlaku juga insert before 3.
Delete First

Penghapusan di awal list, pointer head akan berpindah ke node selanjutnya,sementara node awal akan di dealokasi.
Delete Last

Penghapusan di akhir list, pointer tail akan berpindah ke node sebelumnya,sementara node akhir akan di dealokasi.
Delete Node

Penghapusan node dengan data tertentu, pada kasus diatas yaitu delete node 2.
Double Linked List Circular adalah linked list dengan menggunakan pointer, dimana setiap node memiliki 3 field, yaitu 1 field pointer yang menunjuk pointer berikutnya (next), 1 field menunjuk pointer sebelumnya (prev), serta sebuah field yang berisi data untuk node tersebut.