校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 数据结构 > 双向链表
题目

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

解答

采用头插法建表的思路,用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; //继续处理余下的节点
}
}


C 0条回复 评论

帖子还没人回复快来抢沙发