Question 31 of 75 - LeetCode Weekly Challenge

LeetCode Challenge #206. Reverse Linked List

Given the head of a singly linked list, reverse the list, and return the reversed list.

 

Example 1:

Input: head = [1,2,3,4,5]
Output: [5,4,3,2,1]

Example 2:

Input: head = [1,2]
Output: [2,1]

Example 3:

Input: head = []
Output: []

 

Constraints:

  • The number of nodes in the list is the range [0, 5000].
  • -5000 <= Node.val <= 5000
Video Solution
C++ Solution
				
					class Solution {
public:
    ListNode* reverseList(ListNode* head) {

        if(!head || !head->next) return head;
        ListNode* p=NULL;
        ListNode* c=head;
        ListNode* n=c->next;
        ListNode* tail=head;
        
        while(tail->next)
        tail=tail->next;
        
        while(c)
        {
            n=c->next;
            c->next=p;
            p=c;
            c=n;
        }
        swap(head,tail);
        return head;
    }
};
				
			

Happy Coding with edSlash