天天看点

一道考频较高的面试题:数组和链表的区别

数组和链表虽然看似很基础,但却也经常被面试官问到,所以我们还是需要熟练掌握的。

区别1:内存上是否连续

  • 数组在内存上是连续的
  • 链表在内存上不是连续的,链表是通过指针指向下一个元素。

区别2:存放位置不同

  • 数组存放在栈中
  • 链表存放在堆中

区别3:查询时间复杂度不同

  • 数组查询时间复杂度是O(1)
  • 链表查询时间复杂度是O(N)

区别4:插入或删除的时间复杂度不同

  • 数组的时间复杂度是O(N)
  • 链表的时间复杂度是O(1)

区别5:内存分配方式不同

  • 数组是静态分配内存
  • 链表是动态分配内存

继续阅读