链表

概念:


链表是一种物理存储单元上非连续、非顺序的存储结构数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)和O(1)。

数据结构:

public class ListNode
{
    public int val;
    public ListNode next;
    public ListNode (int x)
    {
        val = x;
    }
}


相关算法:

  1. 逆序构造单链表;
  2. 链表反转;
  3. 链表排序;
  4. 合并两个有序链表;
  5. 求出链表倒数第k个值;
  6. 判断链表是否有环,有环返回相遇结点;
  7. 在一个有环链表中找到环的入口;
  8. 删除当前结点;
  9. 找出链表的中间结点。
posted @ 2018-09-11 10:42  YanyuWu  阅读(98)  评论(0)    收藏  举报