- 单链表
每个节点只包含一个指针,即后继指针
头节点指向整条链表,尾节点的后继指针指向空地址 null
插入和删除节点的时间复杂度为O(1),查找的时间复杂度为O(n)
- 双向链表
节点除了存储数据外,还有两个指针分别指向前一个节点地址(前驱指针prev)和下一个节点地址(后继指针next)
头节点的前驱指针prev和尾节点的后继指针均指向空地址
- 循环链表
除了尾节点的后继指针指向头节点的地址外均与单链表一致。 适用于存储有循环特点的数据,比如 约瑟夫斯问题
- 双向循环链表
头节点的前驱指针指向尾节点,尾节点的后继指针指向头节点
链表的时间复杂度
操作 | 复杂度 |
---|