数组和链表虽然看似很基础,但却也经常被面试官问到,所以我们还是需要熟练掌握的。
区别1:内存上是否连续
- 数组在内存上是连续的
- 链表在内存上不是连续的,链表是通过指针指向下一个元素。
区别2:存放位置不同
- 数组存放在栈中
- 链表存放在堆中
区别3:查询时间复杂度不同
- 数组查询时间复杂度是O(1)
- 链表查询时间复杂度是O(N)
区别4:插入或删除的时间复杂度不同
- 数组的时间复杂度是O(N)
- 链表的时间复杂度是O(1)
区别5:内存分配方式不同
- 数组是静态分配内存
- 链表是动态分配内存
数组和链表虽然看似很基础,但却也经常被面试官问到,所以我们还是需要熟练掌握的。