试题
考点

数据结构-链表-双向链表

面5笔5

有一个双链表L,其中有n(n>=1)个数据节点,设计一个算法将所有节点逆置

前往“校招VIP”小程序,刷题更快
最新校招难题刷题,快来进刷题群吧
解答

采用头插法建表的思路,用p遍历所有数据节点,先将新表看成只有一个头节点的双链表,然后将每个节点p插入该双链表的前端。

算法实现如下:

//有一个双链表L,其中有n(n >= 1)个数据节点,设计一个算法将所有节点逆置
void Reverse(DNode*& L)
{
DNode* p = L->next, * q;
L->next = NULL;
while (p != NULL) //遍历原双链表的所有数据节点
{
q = p->next; //用q临时保存节点p的后继节点
p->next = L->next; //将节点p插入新链表的前端
if (L->next != NULL)
L->next->prior = p;
L->next = p;
p->prior = L;
p = q; //继续处理余下的节点
}
}


评论
暂无评论

加载更多