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

    有一个不带头结点的单链表L(至少有1个结点),
    第一个结点指针为head,编写算法将L逆置,
    即最后一个结点变成第一个结点,倒数第二个结点变成第二个结点,如此等等。

    #include<stdio.h>
    #include<stdlib.h>
    
    //链表中节点的结构
    typedef struct Link {
        int  data;
        struct Link* next;
    }link;
    
    //链表初始化
    link* initByTailInsert(link* phead) {
        link* first_node = (link*)malloc(sizeof(link));//创建第一个节点
        //第一个结点先初始化
        first_node->data = 1;
        first_node->next = NULL;
        phead = first_node;//头指针指向第一个节点
    
        //尾插入赋值
        for (int i = 2; i < 10; i++) {
            link* new_node = (link*)malloc(sizeof(link)); //申请新的结点
            new_node->data = i;
            new_node->next = NULL;
            first_node->next = new_node;  //第一个结点的指针域指向这个新申请的结点
            first_node = new_node;  //第一个结点后移
        }
    
        //printf("头指针指向的值是:%d
    ", phead->data);//1
        return phead;  //将指向第一个结点的头指针返回
    }
    
    
    link* reverseLink(link* phead){
        link* p = NULL; 
        link* q = phead; //q指向当前被改变指针域的结点
        while (q != NULL) {
            phead = phead->next;
            q->next = p;
            p = q;
            q = phead;
        }
        phead = p;
        return phead;
    }
    
    
    void showLink(link* phead) {
        link* tmp = phead;//将头指针赋给tmp,tmp也是一个头指针
        //只要tmp指针指向的结点的next不是Null,就执行输出语句。
        while (tmp != NULL) {
            printf("%d ", tmp->data);
            tmp = tmp->next;
        }
        printf("
    ");
    }
    
    void main() {
        link* myhead = NULL;
        myhead = initByTailInsert(myhead);//创建头指针,得到经过初始化后的头指针
        printf("初始化链表为:
    ");
        showLink(myhead);
        printf("将单链表逆置后:
    ");
        myhead = reverseLink(myhead);
        showLink(myhead);
    }
    

  • 相关阅读:
    python-单链表的实现
    python-树形结构和遍历
    python四种简单排序
    python数据类型
    python安装和配置
    Js 中的false,零值,null,undefined和空字符串对象
    console和chrom-tool
    js中声明Number的五种方式
    vue下拉搜索
    canvas猜数游戏
  • 原文地址:https://www.cnblogs.com/shanlu0000/p/12696470.html
Copyright © 2011-2022 走看看