https://leetcode.com/problems/reverse-linked-list/

思路很简单,分别设置三个结点,之后依次调整结点1和结点2的指向关系。

Before: pre -> nxt -> nxtnxt -> .....  Here current = pre,nxt = pre->next, nxtnxt = nxt->next.

After:   pre <- nxt     nxtnxt -> .....  Here current = nxt, nxt = nxtnxt

代码如下(附加了一个简单的初始化链表的实例,VS2012下测试PASS)

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include <ctype.h> struct ListNode {
int val;
struct ListNode *next;
}; struct ListNode* initListNode(void){
struct ListNode* head = (struct ListNode*)malloc(sizeof(struct ListNode));
head->val = ;
head->next = NULL;
} void pushNode(struct ListNode* head, int val){
struct ListNode* tmp;
struct ListNode* pre = head;
while (pre->next != NULL)
pre = pre->next;
tmp = (struct ListNode*)malloc(sizeof(struct ListNode));
pre->next = tmp;
tmp->val = val;
tmp->next = NULL;
} void printListNode(struct ListNode* head){
struct ListNode* pre = head;
while (pre != NULL){
printf("%-4d", pre->val);
pre = pre->next;
}
printf("\n");
} struct ListNode* reverseList(struct ListNode* head) {
struct ListNode* current;
struct ListNode* nxt;
struct ListNode* nxtnxt; if (head == NULL)
return head;
else if (head->next == NULL)
return head;
else{
current = head;
nxt = current->next;
while (nxt != NULL){
nxtnxt = nxt->next;
nxt->next = current;
current = nxt;
nxt = nxtnxt;
}
head->next = NULL;
return current;
}
} int main(){
int i;
struct ListNode* head = initListNode();
for (i = ; i < ; i++){
pushNode(head,i);
}
printListNode(head);
head = reverseList(head);
printListNode(head);
}

LeetCode 206 单链表翻转的更多相关文章

  1. Java实现单链表翻转

    单链表翻转比方有例如以下链表: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmVuZ3NoaXp0eQ==/font/5a6L5L2T/fontsize ...

  2. 用python介绍4种常用的单链表翻转的方法

    这里给出了4种4种常用的单链表翻转的方法,分别是: 开辟辅助数组,新建表头反转,就地反转,递归反转 # -*- coding: utf-8 -*- ''' 链表逆序 ''' class ListNod ...

  3. LeetCode 206. 反转链表(Reverse Linked List) 16

    206. 反转链表 206. Reverse Linked List 题目描述 反转一个单链表. 每日一算法2019/5/19Day 16LeetCode206. Reverse Linked Lis ...

  4. 每天一道面试题LeetCode 206 -- 反转链表

    LeetCode206 反转链表 思路 代码 # # @lc app=leetcode.cn id=206 lang=python3 # # [206] 反转链表 # # https://leetco ...

  5. leetCode:206 反转链表

    206. 反转链表 题目:反转一个单链表. 进阶:链表可以迭代或递归地反转.你能否两个都实现一遍? 非递归代码: class Solution { public ListNode reverseLis ...

  6. Java实现 LeetCode 206 反转链表

    206. 反转链表 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL ...

  7. leetcode 206. 反转链表 及 92. 反转链表 II

    206. 反转链表 问题描述 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1-> ...

  8. leetCode题解单链表反转

    1.题目描述 反转一个单链表.链表节点结构如下: struct ListNode { int val; ListNode* next; }; 2.问题分析 特殊情况是输入的头结点是一个空的,或者只有一 ...

  9. LeetCode 206——反转链表

    对单链表进行反转有迭代法和递归法两种. 1. 迭代法 迭代法从前往后遍历链表,定义三个指针分别指向相邻的三个结点,反转前两个结点,即让第二个结点指向第一个结点.然后依次往后移动指针,直到第二个结点为空 ...

随机推荐

  1. 微信小程序,前端大梦想(五)

    微信小程序之综合应用-访问网络加载数据 移动端访问网络加载数据时必不可少的功能,本章将接入豆瓣电影API,以列表的形式展现数据,支持下拉刷新及点击查看详情.重点包括: l 访问网络 l 跳转画面及传参 ...

  2. redis 编译安装(生产环境推荐)

    一.安装redis 1.下载redis包 wget http://download.redis.io/releases/redis-3.2.1.tar.gz 2.解压redis包到/opt下 tar ...

  3. 使用gnuplot对tpcc-mysql压测结果生成图表

    tpcc-mysql的安装:http://www.cnblogs.com/lizhi221/p/6814003.html tpcc-mysql的使用:http://www.cnblogs.com/li ...

  4. C# 文件上传(可以多文件上传)

    一.前端搭建 1.前端用到js:uploadify(下载地址:http://www.uploadify.com/download/).layer (下载地址:http://layer.layui.co ...

  5. RabbitMQ集群和失败处理

    RabbitMQ内建集群的设计用于完成两个目标:允许消费者和生产者在RabbitMQ节点在奔溃的情况下继续运行,以及通过添加更多的节点来线性扩展消息通信的吞吐量.当失去一个RabbitMQ节点时客户端 ...

  6. makefile文件模板介绍

    1    src : = $(shell  ls  *.c)2    objs : = $(patsubst  %.c, %.o, $(src))3    test : $(objs)4       ...

  7. 深入Android RxJava 2

    这篇文章是根据Jake Wharton在GOTO CopenHagen 2016上的讲话整理的. 下一个版本(2.0)的RxJava还在开发中.虽然observable.订阅管理和背压(backpre ...

  8. Generating Sankey Diagrams from rCharts

    A couple of weeks or so ago, I picked up an inlink from an OCLC blog post about Visualizing Network ...

  9. Java 8 新特性1-函数式接口

    Java 8 新特性1-函数式接口 (原) Lambda表达式基本结构: (param1,param2,param3) -> {代码块} 例1: package com.demo.jdk8; i ...

  10. spring MVC 乱码问题

    (转) spring的字符集过滤通过用于处理项目中的乱码问题,该过滤器位于org.springframework.web.filter包中,指向类CharacterEncodingFilter,Cha ...