文|洪生鹏
面试时,基本的数据结构经常会遇到。
最近有个读者分享了他一次扎心求职经历,分享给大家,之所以说扎心了,是因为他对面试官提出的基本问题都没有回答个所以然。
小唐是一名java程序员,工作3年了,平时工作内容都倾向业务方面的,对于数据结构基础知识接触的比较少。
最近到一家互联网公司面试,面试官问了他这样一个问题:
如何对单链表的数据进行反转?
要是说对字符串进行反转,小唐倒是能回答,可单链表,小唐平时工作很少接触,只记得是数据结构方面的知识点,这些在大学时上课倒是经常接触,现在都忘记了差不多了。
面试官见小唐没有作答,于是说,你都工作了3年了,怎么连数据结构栈最基本的都没掌握啊。
小唐被面试官这么一说,特别不好意思,确实不应该,类似这样基本的数据结构,哪怕平时工作中没有应用到,也是需要掌握才行,毕竟程序开发离不开数据结构。
那么什么是单链表呢,我们不妨来对这个知识点简单回顾下。
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。
单链表的反转,有时候我们想对一组数据进行反转,比如:1—>2—>3—>4 反转成:4—>3—&