专栏
扫码关注公众号
一个长度为n的单向链表,用O(1) 空间复杂度来实现倒转输出,使用最低时间复杂度
思路:读题(反射)单向链表,直接设结点Nodehead;要倒转就需要重置链接,设记忆结点Nodep空间复杂度为O(1),就是不能使用新的空间
找出单链表的中间元素,要求用时最少
思路1、最简单实现,先遍历一遍链表,取得长度n;再遍历一遍,取n/2的位置的结点2、要求用时最少,能不能减少为遍历1次?3、如果有两个指针都
单链表中是否有环,写出代码
思路1、一个指针只能遍历,没有办法做出判断2、尝试两个结点,两个结点通常是slow走一步,fast走两步3、通过画图或者思考,可以看出,有环
如果单链表中是有环,请找到环的入口点
思路这是【单链表中是否有环,写出代码】的扩展题,可以划分到面试中难度最大的那一档中没有思路,只能静下心来 找环的入口点,就是找到入
已知 pPre 为指向链表中某结点的指针, pNew 是指向新结点的指针,以下哪段伪码算法是将一个新结点插入到链表中 pPre 所指向结点的后面?
正确答案是C首先将旧结点的指针域(即pPre->Link,它存放着接下来的那个结点的地址)赋值给新结点的指针域(pNew->Link).这一步是因为:为了完成插入,新结点应该指向旧结点原来指向的元素。然后将指向新结点的指针(pNew,即新结点的地址)赋值给旧结点的指针域(pPre->Link),以让旧结点指向新结点。