欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【leetcode 简单】 第六十题 反转链表

程序员文章站 2022-10-04 22:31:15
反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 反转一个单链表。 示例: 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? /** * Defi ......

反转一个单链表。

示例:

输入: 1->2->3->4->5->null
输出: 5->4->3->2->1->null

进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题?

/**
 * definition for singly-linked list.
 * struct listnode {
 *     int val;
 *     struct listnode *next;
 * };
 */
struct listnode* reverselist(struct listnode* head) {
    if (null == head || null == head->next)
    {
        return head;
    }
    struct listnode* a=head;
    struct listnode* b=head->next;
    struct listnode* c;
    
    head->next = null;
    while (b)
    {
        c = b->next;
        b->next = a;
        a = b;
        b = c;
    }
    head = a;
    return head;
}