zoukankan      html  css  js  c++  java
  • 单链表的逆置

    单链表的逆置是面试官非常青睐的题,这个题可以看出面试者对链表和指针的操作。
    而且问题也很好描述,一句话就表达出了自己的题。
    ----------------------------------------------------------------------------------------------
    一、算法思想:(头插法)
    <1>,将源链表分为链表头和链表实体。
    <2>,将链表实体节点用头插法依次插入到链表头中。
    <3>,如果链表实体插完则算法结束,否则转到<2>.

    --------------------------------------------------------------------------------------------
    二、算法的实现:

    头插法:

    void reverse(struct node *head)
    {
            if (head == NULL)
                return ;
            struct node *p = head->next,*pnext = NULL;
            head->next = NULL;
            while (p != NULL) {
                    pnext = p->next;
                    p->next = head->next;
                    head->next = p;
                    p = pnext;
            }
            return ;
    }

     利用辅助指针

    void ListReverse2(LinkList L)
    {
        LNode *real = L->next;          //带头结点的链表,real指向第一个实结点
        //real为NULL,则链表为只含头结点的空表
        //real->nexxt为NULL,则链表只含有一个结点
        if(real == NULL || real->next == NULL)          
            return;
    
        LNode *pre = real;              //先前指针
        LNode *cur = real->next;        //当前指针
        LNode *suc = NULL;              //后继指针
    
        while(cur != NULL)
        {
            suc = cur->next;
            cur->next = pre;
    
            pre = cur;
            cur = suc;
        }
        real->next = NULL;              //while执行后第一个结点和第二个结点互指
    
        L->next = pre;                  //记录新的头结点
    }
  • 相关阅读:
    nginx 配置优化(简单)
    Nginx 安装
    Smokeping安装教程
    test [ ] 四类
    if语句中的判断条件(nginx)
    力扣 1431. 拥有最多糖果的孩子 python
    力扣 1672. 最富有客户的资产总量+1512. 好数对的数目 python
    力扣 剑指 Offer 58
    力扣 8. 字符串转换整数 (atoi)python--每日一题
    力扣 7. 整数反转python 每日一题
  • 原文地址:https://www.cnblogs.com/wft1990/p/6875485.html
Copyright © 2011-2022 走看看