博客日历
2025年06月 | ||||||
一 | 二 | 三 | 四 | 五 | 六 | 七 |
26 | 27 | 28 | 29 | 30 | 31 | 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
存档
2025年03月 2024年
03月 04月 05月 2021年
01月 02月 11月 12月 2020年
02月 03月 04月 05月 06月 07月
09月 2018年
09月 2017年
01月 02月 07月 2016年
01月 04月 07月 08月 11月 12月
2015年
01月 02月 03月 05月 09月 10月
11月 2014年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2013年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2012年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2011年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2010年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2009年
03月 04月 05月 06月 07月 08月
09月 10月 11月 12月
面试题:链表的逆转
struct Node
{
int data;
Node* next;
};
Node *_pHead=...;
void Reverse()
{
if (_pHead==NULL)
{
return;
}
//首先将原头结点作为逆转后链表的头结点
Node* pReverseHead=_pHead;
//从头节点开始,遍历每个节点
Node* pNode=_pHead;
while(pNode!=NULL)
{
//保存当前节点的[下一个节点]
Node* pTmpNext=pNode->next;
//将头结点串接在当前节点之后
pNode->next=pReverseHead;
//将当前节点作为头结点
pReverseHead=pNode;
//处理当前节点的[下一个节点]
pNode=pTmpNext;
}
//逆转之后,原始头结点将变成最后一个节点,所以将其next置为NULL
_pHead->next=NULL;
//改变头结点为逆转后的头结点
_pHead=pReverseHead;
}
//辅助函数:
void AddToHead(int data)
{
Node* pNewNode=new Node();
pNewNode->data=data;
pNewNode->next=NULL;
if (_pHead==NULL)
{
_pHead=pNewNode;
}
else
{
pNewNode->next=_pHead;
_pHead=pNewNode;
}
}
源码:点击下载
上一篇: 实现自己的俄罗斯方块
下一篇: 用Maple13解不等式组
分类:Win32/C++ 查看次数:4409 发布时间:2012/5/9 17:16:53