16-1 单链表的简单翻转

一、题目描述

对链表整体做翻转

二、解题思路

定义三个指针*pre 、*cur 、*next

三、解题算法

/*****************************************************
Author:tmw
Date:2018-4-13
*****************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

typedef struct ListNode
{
    int val;
    struct ListNode *next;
}ListNode;

/**简单版:单链表的整体reverse**/
ListNode* reverseList(struct ListNode* head) {

    if( head == NULL )
        return NULL;

    ListNode* pre;
    ListNode* cur;
    ListNode* next;

    pre=NULL;
    cur=head;

    /**当链表只有一个元素:即头结点时**/
    if(head->next==NULL)
        return head;

    while( cur->next != NULL )
    {
        next = cur->next;
        cur->next = pre;
        pre = cur;
        cur = next;
    }
    /**将最后的逆转补上**/
    cur->next = pre;
    return cur;

}


梦想还是要有的,万一实现了呢~~~~ヾ(◍°∇°◍)ノ゙~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值