jimmm_ 2022-05-22 13:43 采纳率: 60%
浏览 37
已结题

逆置算法看不太懂,谁能解析一下?(越详细越好)

void invert(DuLinkList*&L)
{
DuLinkList* p = L->next;
DuLinkList* q;
L->next = NULL;
while (p != NULL)
{
q = p->next;
p->next = L->next;
p->prior = q;
L->next = p;
p = q;
}
}

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-05-25 11:48
    关注

    供参考:

    //带头结点的双向链表的就地逆置
    void invert(DuLinkList*& L)
    {
        DuLinkList* q;
        DuLinkList* p = L->next; // 将 p 指向链表 L 的第一个结点,同时将头结点L从链表中脱离
        L->next = NULL;          // 成一个独立的结点
        while (p != NULL) // 此时 p 指向链表的第一个结点
        {
            q = p->next; // q 指向链表的第二个结点,即 p结点的下一个结点
            p->next = L->next; //头插法将第一个结点 p 链入头结点 L
            p->prior = q;  //将 p 结点前驱指针修改为指向 第二个结点 q  
            L->next = p; //头插法将第一个结点 p 链入头结点 L
            p = q; //上述动作完成后,让 p 指向第二个结点 q ,准备第二个结点的 逆置
        }
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月18日
  • 已采纳回答 6月10日
  • 创建了问题 5月22日

悬赏问题

  • ¥15 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错