二、链表
1.单链表
结点结构
以下是单链表中结点的典型定义:
public class SinglyListNode {
int val;
SinglyListNode next;
SinglyListNode(int x) { val = x; }
}
①添加
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020051316204340.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25pc2h1YXdhbg==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200513162154601.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25pc2h1YXdhbg==,size_16,color_FFFFFF,t_70)
②删除
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200513162209413.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25pc2h1YXdhbg==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200513162238660.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25pc2h1YXdhbg==,size_16,color_FFFFFF,t_70)
对照
这里我们提供链表和其他数据结构(包括数组,队列和栈)之间时间复杂度的比较:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200513161629636.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25pc2h1YXdhbg==,size_16,color_FFFFFF,t_70)
经过这次比较,我们不难得出结论:
如果你需要经常添加或删除结点,链表可能是一个不错的选择。
如果你需要经常按索引访问元素,数组可能是比链表更好的选择。