zoukankan      html  css  js  c++  java
  • 编写算法将带头节点的单链表就地逆置

    LinkList  Reverse_1(LinkList  L) {    //传入链表的头结点
      LNode *p, *r;    //p为工作指针,r为p的后继,以防断链
      p = L->next;    //从第一个元素节点开始
       L->next = NULL;    //先将L的next域置为NULL
      while(p! = NULL) {
        r=p->next;        // 暂存p的后继
        /* 后两句语句就是头插法建立单链表的操作*/
        p->next = L->next;
        L->next  = p;
        p = r;        //更新指针p,遍历整个单链表
      }
      return L;
    }

    解法2

    LinkList  Reverse_2(LinkList L){
    //依次遍历线性表,并将结点指针反转
      LNode *pre, *p=L->next, *r=p->next;
      p->next = NULL;  //处理第一个结点  链表反转后,第一个结点变为最后一个结点,其next域为NULL
      while(r!= NULL){
       /* 后三句依次更新指针,遍历单链表*/
        pre = p;
        p = r;
        r = r->next;
        p->next = pre;       //反转指针
      }
      L->next = p;      //处理最后一个结点,链表反转后,最后一个结点变为第一个结点,L->next要指向其
      return L;
    }
  • 相关阅读:
    Zabbix 单位换算
    Confluence6.9配置邮件服务器
    Linux内核基础优化
    Nginx跨域问题
    ssh远程登录过程中卡住
    postfix无法启动问题
    mysql-配置文件详解
    Mongodb-副本集部署
    Mongodb-安全配置优化
    Mongodb-简单部署
  • 原文地址:https://www.cnblogs.com/zhuxuan1997/p/10673420.html
Copyright © 2011-2022 走看看