为什么我的双向链表反向失败?

问题描述 投票:0回答:1

我正在尝试使用reverseList()函数反转一个双向链表,如下所示,但是我没有得到我所期望的,我的逻辑上没有发现任何错误,但是帮助。

void reverseList(Node **head)
{
    Node *i,*temp=*head;
    while(temp!=NULL)
    {
        i=temp->next;
        temp->next=temp->prev;
        temp->prev=i;

        /*This if block is to ensure that the head may never get a null value,
        as temp is assigned to head after the loop,
        ie, temp=i; doesn't execute only for the last iteration*/

        if(i!=NULL)
        temp=i; 
    }
    *head=temp;
}
c++ data-structures reverse doubly-linked-list
1个回答
-1
投票

您无需在节点上进行任何操作即可反转双链表,因为所有节点已经以两种方式连接。所有相反的可能只是:

root = tail;
© www.soinside.com 2019 - 2024. All rights reserved.