`

单链表查找

阅读更多

今天看到一个帖子

http://www.iteye.com/topic/622496

里面提到了如下问题:

附微软面试的面试题:
   1:单链表,遍历一次,找到倒数第N个节点。
   2:单链表,遍历一次,找到中间节点。(这个主要要考虑到单链表元素个数是奇/偶数的情况,这个是关键的,我当时  就是差点没考虑到这个)。
  3:如何把一个大象装到冰箱里。
  4:随手拿一个笔筒,把笔倒掉,问,你会用什么方法测试这个笔筒。

有意义的回复:

 

第一题先把一个节点前进n个节点(当然,前进的时候判断是否遇到null,遇到表明题目无解)。然后用另外一个节点和刚才的节点一起前进,当后一个节点遇到null时,前一个节点就是要找的节点。

第二题和第一题的思路是一样的。一个前进两个节点,一个前进一个,和检测环算法类似。

时间复杂度都是O(n)


你的基本解题思路是对的,第一题也没有什么问题,但第2题有点问题,因为要考虑到元素是偶数的情况下,你是如何确认中间节点的(可以认为偶数没有中间节点,也可以认为偶数有两个中间节点),另外如果是奇数且只有一个节点,你的中间节点又是怎么算的?这些细节问题都是需要考虑到得。

 

4:随手拿一个笔筒,把笔倒掉,问,你会用什么方法测试这个笔筒。
答:再把笔装回去,原因很简单,笔筒就是用来装笔的,要测试的最好方法就是往里面装笔。

 

exloong 写道
第四题你们想怎么去测试就进圈套了,要先问他要测试需求
分享到:
评论

相关推荐

    单链表 快速查找 VC++

    在VC++环境下,我们可以利用C++的标准模板库(STL)中的`list`容器来实现单链表,但这里我们将探讨如何从零开始手动构建一个单链表,以及如何在其中实现快速查找。 单链表由一系列节点组成,每个节点包含两个部分:...

    单链表的查找,插入和删除

    用c++实现了单链表的查找,插入和删除,简单直观。

    单链表查找函数

    基础的单链表查找函数 c语言实现 新手学习c语言链表的基础函数

    链表的C语言实现之单链表的查找运算.txt

    根据给定文件的信息,本文将详细介绍如何在C语言中实现单链表的查找运算。...以上就是关于单链表查找运算的C语言实现方法。通过对这些基本概念和技术的理解,可以帮助开发者更好地利用单链表解决实际问题。

    单链表的基本操作实现-查找_单链表的基本操作实现_

    以下是对单链表查找操作的详细阐述。 1. **单链表结构**: 单链表中的每个节点(Node)由两部分组成:数据域(Data),存储实际数据;指针域(Next),指向链表中的下一个节点。链表的头部通常由一个特殊的节点...

    【课件】2.3.2_2_单链表的查找.pdf

    根据给定文件的信息,我们可以总结出以下关于单链表查找的相关知识点: ### 一、单链表基础概念 - **定义**:单链表是一种线性表的数据结构,其中每个元素(节点)包含两个部分:数据域(存储数据)和指针域(指向...

    单链表的按值查找_shujujiegou_

    本文将深入探讨单链表的按值查找操作,帮助初学者理解其工作原理和实现方法。 首先,我们需要理解单链表的基本概念。单链表是由一系列节点组成的,每个节点包含两部分:数据域和指针域。数据域存储实际的数据,而...

    单链表程序

    int main() { listtype l; int i,j; printf("输入链表数据:\n"); initiatesl(&l); show_l(&l); i=find_list(&l,3); j=find_list(&l,7);... printf("'3'所在位置:%d\n'7'所在位置:%d\n",i,j);...}

    单链表的创建查找插入删除

    这里有封装好的单链表,里面包含了各种单链表的实现过程

    单链表的创建、查找、删除、添加、合并

    从给定的代码片段中,我们可以提取出关于单链表操作的关键知识点,包括单链表的创建、查找、删除、添加以及合并等基本操作。以下是对这些知识点的详细解析: ### 单链表的创建 单链表是一种线性数据结构,其中每个...

    单链表的创建,查找,排序,插入,删除

    2、查找单链表中的第i个结点,并输出结点元素的值; 3、在单链表中的第i个结点前插入一个结点值为e的正整数(从外部输入); 4、删除单链表中的第j个结点; 5、将单链表中的各结点就地逆序(不允许另建一个链表); 6 ...

    单链表的按位查找_shujujiegou_

    在"单链表的按位查找"这个主题中,我们主要探讨的是如何在链表中查找特定位置的元素。按位查找通常是指在已知链表长度的情况下,找到第n个位置上的元素。这里的关键在于理解链表的遍历机制。 链表的遍历是通过跟踪...

    带环单链表查找环的入口算法(Java语言描述)

    查找带环单链表的环入口是解决这类问题的关键。 首先,我们可以使用两种主要的算法思路来找到环的入口: 1. **HashSet方法**:在这个方法中,我们利用哈希集合(HashSet)存储遍历过程中遇到的每个节点。当遍历到...

    数据结构顺序表和链表(超详细)

    此压缩包为1、无头+单向+非循环链表增删查改实现// 动态申请一个结点// 单链表打印// 单链表尾插// 单链表的头插// 单链表的尾删// 单链表头删// 单链表查找// 单链表在pos位置之后插入x// 单链表删除pos位置之后的...

    c#实现单链表_查找插入的操作

    本程序重点展示了如何定义单链表,并实现查找、插入和求长度的基本操作。以下是这些操作的详细解释。 ### 1. 定义单链表 在C#中,我们首先需要创建一个表示链表节点的类,通常命名为`Node`。这个类通常包含两个...

    数据结构实验——单链表

    2、掌握单链表的插入、删除、查找、求表长以及有序单链表的合并算法的实现 二、实现内容 1、单链表基本操作的实现 在带头结点的单链表h中第i个数据元素之前插入一个数据元素x ,首先需要在单链表中寻找到第i-1个结点...

    查找单链表的中间节点

    头插法建立带头结点的单链表,并找出中间节点值

    单链表 单链表 单链表 链表

    以上就是C语言实现单链表的基本操作,包括创建、插入、删除、查找位置以及获取指定位置的值。在实际编程中,还可以实现其他功能,如打印链表、反转链表、合并两个有序链表等。掌握单链表的操作对于理解更复杂的数据...

    数据结构 单链表程序

    2、对已建立的单链表实现查找、逆置和计算线性表长度等操作。 void main( ) { int r[100],n,i,x; cout请输入线性表中元素的个数!"; cin>>n; cout请输入线性表中每个元素!"; for(i=0;i;i++) {cout请输入第...

    单链表的查找插入删除.cpp

    单链表的查找插入删除.cpp

Global site tag (gtag.js) - Google Analytics