假设现有一个单向的链表,但是只知道只有一个指向该节点的指针p,并且假设这个节点不是尾节点,
假设现有一个单向的链表,但是只知道只
有一个指向该节点的指针p,并且假设这个节点不
是尾节点,试编程实现删除此节点
假设现有一个单向的链表,但是只知道只
有一个指向该节点的指针p,并且假设这个节点不
是尾节点,试编程实现删除此节点
写一算法检测单向链表中是否存在环
(whether there is a loop in a link list),
要求算法复杂度(Algorithm's complexity 是
O(n)) 并只使用常数空间(space is O(c)).
注意,你只知道一个指向单向链表头的指针。
链表的长度是不定的,而且环出现的地方也是不定
的,环有可能在头,有可能在中间。而且要求是检
测, 不能破坏环的结构.
面试题:在O(1)时间删除链表结点
题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除链表结点。链表结点与函数的定义如下:
struct List Node
{
int m_n Value;
ListNode* m_pNext;
};
void DeleteNode (listNode** plistHead, ListNode* pToBeDeleted);
A.head==NULL
B.head->next=NULL
C.head->next=head
D.head!=NULL
写一个函数,判断一个int型的整数是否是
2的幂,即是否可以表示成2^X的形式(不可以用
循环)
我只知道是用递推,大概写了一下,如下:
int IsTwoPow(int s)
{
if(s==1)return FALSE;
s=s>>1;
if(s>1)IsTwoPow(s);
return (s==1)?TRUE:FALSE;//大概是这个意
思,但是这一句似乎不该这么返回!
}
A.数组适合用于最大元素个数容易确定的情况
B.存储相同的元素,单向链表比数组占用的存储空间要多
C.查找特定元素时,使用单向链表比使用数组方便
D.对于需要频繁添加删除元素的情况,使用单向链表比使用数组合适