当前位置: 首页 > news >正文

链表的逆置

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

//
//  main.c
//  newline
//
//  Created by Jason on 16/4/12.
//  Copyright © 2016年 jason. All rights reserved.
//

#include <stdio.h>
#include "stdlib.h"
#define NULL 0

struct node{
    int data;
    struct node *next;
};
struct node*create(struct node *L){
   
    int x, flg = 1;
    struct node *p, *s;
    L=(struct node *)malloc(sizeof(struct node)); //生成头结点
    L->next = NULL;
    p=L;
    while(flg)    //循环接受输入节点数据,0结束输入
    {
        printf("请输入节点数据\n");
        scanf("%d", &x);
        if(x != 0)
        {
            s=(struct node *)malloc(sizeof(struct node)); //生成新节点
            s->data = x;
            p->next = s;        //把新节点插入链表尾部
            p = s;              //p指针再次指向尾节点
        }
        else
        {
            flg = 0;    //输入0,改变循环变量,不接受新节点
        }
        
    }
    p->next = NULL;
    
    puts("链表输入结束\n");
    
    return L;
}
void print_node(struct node *head){
    struct node *tmp;
    tmp = head->next;
    while (tmp != NULL) {
        printf("%d  ", tmp->data);
        tmp = tmp->next;
    }
}
void reverse_node(struct node *head){
    struct node *p1,*p2;
    p1 = head->next;
    head->next = NULL;
    while (p1 != NULL) {
        p2 = p1;
        p1 = p1->next;
        p2->next = head->next;
        head->next = p2;
    }

}
int main(int argc, const char * argv[]) {
    
    struct node *head;
    head = NULL;
    head=create(head);/*创建单链表*/
    puts("\n所有链表:\n");
    print_node(head);
    puts("\n");
    puts("链表逆置:\n");
    reverse_node(head);
    print_node(head);
    return 0;
}


转载于:https://my.oschina.net/jasonwung/blog/657090

相关文章:

  • 帧间提取水印
  • 面试遇到的一些题
  • Charles中如何对https抓包
  • 大家一起和snailren学java-(13)字符串
  • 九、搭建织梦cms网站
  • I.MX6 driver goto 使用
  • wcf系列学习5天速成——第四天 wcf之分布式架构
  • 【HBase】start master 与 start master --backup 的区别
  • 【Mongodb】如何创建mongodb的replica set
  • ti processor sdk linux am335x evm /bin/setup-host-check.sh hacking
  • ST:(Lab2)Selenium 实验
  • MySQL中MAX函数与Group By一起使用的注意事项
  • 网易前端JavaScript编码规范
  • BAT面试笔记
  • Architecture.the-reactive-manifesto
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • C++入门教程(10):for 语句
  • Git同步原始仓库到Fork仓库中
  • Java 内存分配及垃圾回收机制初探
  • jdbc就是这么简单
  • jQuery(一)
  • Material Design
  • miaov-React 最佳入门
  • node入门
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • React Transition Group -- Transition 组件
  • uni-app项目数字滚动
  • Vue官网教程学习过程中值得记录的一些事情
  • Vue组件定义
  • 程序员该如何有效的找工作?
  • 搞机器学习要哪些技能
  • 回流、重绘及其优化
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 入门到放弃node系列之Hello Word篇
  • 算法-图和图算法
  • # 安徽锐锋科技IDMS系统简介
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #Java第九次作业--输入输出流和文件操作
  • #pragma预处理命令
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (arch)linux 转换文件编码格式
  • (ibm)Java 语言的 XPath API
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (Python) SOAP Web Service (HTTP POST)
  • (补)B+树一些思想
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (转)IOS中获取各种文件的目录路径的方法
  • (转载)Linux 多线程条件变量同步
  • .java 9 找不到符号_java找不到符号
  • .Net Web项目创建比较不错的参考文章
  • .NET 事件模型教程(二)