Skip to content
Programmingoneonone
Programmingoneonone
  • Home
  • CS Subjects
    • Internet of Things (IoT)
    • Digital Communication
    • Human Values
  • Programming Tutorials
    • C Programming
    • Data structures and Algorithms
    • 100+ Java Programs
    • 100+ C Programs
  • HackerRank Solutions
    • HackerRank Algorithms Solutions
    • HackerRank C problems solutions
    • HackerRank C++ problems solutions
    • HackerRank Java problems solutions
    • HackerRank Python problems solutions
Programmingoneonone

Leetcode Reverse Linked List problem solution

YASH PAL, 31 July 2024

In this Leetcode Reverse Linked List problem solution, we have given the head of a singly linked list, reverse the list, and return the reversed list.

Leetcode Reverse Linked List problem solution

Problem solution in Python.

def reverseList(self, current):
    """
    :type head: ListNode
    :rtype: ListNode
    """
    prev=None
    while current:
        curre_new = current.next
        current.next=prev
        prev = current           
        current = curre_new
    return prev

Problem solution in Java.

class Solution {
    public ListNode reverseList(ListNode head) {
        if(head == null)
            return null;
        ListNode first = null;
        ListNode sec = head;
        ListNode third = sec.next;
        while(third != null) {
            ListNode temp = third.next;
            sec.next = first;
            third.next = sec;
            first = sec;
            sec = third;
            third = temp;
        }
        return sec;
    }
}

Problem solution in C++.

class Solution {
public:
    ListNode* reverseList(ListNode* head) {        
        ListNode *aNode = head;
        ListNode *aPrev = NULL;
        ListNode *aNext = NULL;
        while (aNode != NULL) {
            aNext = aNode->next;
            aNode->next = aPrev;
            aPrev = aNode;
            aNode = aNext;    
        }
        return aPrev;
        
    }
};

Problem solution in C.

typedef struct ListNode NODE;

struct ListNode* reverseList(struct ListNode* head){
    if(head==NULL)
        return NULL;
    if(head->next==NULL)
        return head;
    int i=0;
    NODE *previous,*current;
    previous=(NODE *) malloc(sizeof(NODE));
    previous->val=head->val;
    while(head->next!=NULL){
        current=(NODE *) malloc(sizeof(NODE));
        current->val=head->next->val;
        head=head->next;
        current->next=previous;
        if(i==0)
            previous->next=NULL;
        previous=current;
        i++;
    }

    return current;
}

coding problems solutions

Post navigation

Previous post
Next post

Pages

  • About US
  • Contact US
  • Privacy Policy

Programing Practice

  • C Programs
  • java Programs

HackerRank Solutions

  • C
  • C++
  • Java
  • Python
  • Algorithm

Other

  • Leetcode Solutions
  • Interview Preparation

Programming Tutorials

  • DSA
  • C

CS Subjects

  • Digital Communication
  • Human Values
  • Internet Of Things
  • YouTube
  • LinkedIn
  • Facebook
  • Pinterest
  • Instagram
©2025 Programmingoneonone | WordPress Theme by SuperbThemes