How to Reverse Linked List in C++?

The other method is passing pointers directly to the initialization function of the linked list and creating it using copy constructor when objects are created using the default constructor that copies all fields of an original object into a new object.

Reverse a linked list c++

By Itchy ImpalaItchy Impala on Jun 20, 2021
#include<bits/stdc++.h>
 
using namespace std;
 
struct node {
    int data;
    struct node *next;
};
 
// To create a demo we have to construct a linked list and this 
// function is to push the elements to the list. 
void push(struct node **head_ref, int data) {
    struct node *node;
    node = (struct node*)malloc(sizeof(struct node));
    node->data = data;
    node->next = (*head_ref);
    (*head_ref) = node;
}
 
// Function to reverse the list
void reverse(struct node **head_ref) {
    struct node *temp = NULL;
    struct node *prev = NULL;
    struct node *current = (*head_ref);
    while(current != NULL) {
        temp = current->next;
        current->next = prev;
        prev = current;
        current = temp;
    }
    (*head_ref) = prev;
}
 
// To check our program 
void printnodes(struct node *head) {
    while(head != NULL) {
        cout<<head->data<<" ";
        head = head->next;
    }
}
 
// Driver function
int main() {
    struct node *head = NULL;
    push(&head, 0);
    push(&head, 1);
    push(&head, 8);
    push(&head, 0);
    push(&head, 4);
    push(&head, 10);
    cout << "Linked List Before Reversing" << endl;
    printnodes(head);
    reverse(&head);
    cout << endl;
    cout << "Linked List After Reversing"<<endl;
    printnodes(head);
    return 0;
}

Source: favtutor.com

Add Comment

2

reverse linked list in java to get both head and tail

By Ak ShawAk Shaw on May 26, 2020
/*
public class ListNode {
    public int val;
    public ListNode next;
    public ListNode(int x) { val = x; next = null; }
}
*/

public static ListNode[] reverse_linked_list(ListNode head) {

        ListNode prev = null;
        ListNode current = head;
        ListNode next;

        ListNode tail = head;

        while (current != null) {

            next = current.next;
            current.next = prev;
            prev = current;
            current = next;
        }

        head = prev;

        ListNode[] result = {head, tail};

        return result;
}

Add Comment

3

how to reverse a linked ist

By Grieving GnatGrieving Gnat on Aug 27, 2020
class LinkedList { 
  
    static Node head; 
  
    static class Node { 
  
        int data; 
        Node next; 
  
        Node(int d) 
        { 
            data = d; 
            next = null; 
        } 
    } 
  
    /* Function to reverse the linked list */
    Node reverse(Node node) 
    { 
        Node prev = null; 
        Node current = node; 
        Node next = null; 
        while (current != null) { 
            next = current.next; 
            current.next = prev; 
            prev = current; 
            current = next; 
        } 
        node = prev; 
        return node; 
    } 
  
    // prints content of double linked list 
    void printList(Node node) 
    { 
        while (node != null) { 
            System.out.print(node.data + " "); 
            node = node.next; 
        } 
    } 
  
    public static void main(String[] args) 
    { 
        LinkedList list = new LinkedList(); 
        list.head = new Node(85); 
        list.head.next = new Node(15); 
        list.head.next.next = new Node(4); 
        list.head.next.next.next = new Node(20); 
  
        System.out.println("Given Linked list"); 
        list.printList(head); 
        head = list.reverse(head); 
        System.out.println(""); 
        System.out.println("Reversed linked list "); 
        list.printList(head); 
    } 
} 

Add Comment

3

reverse a linked list

By SaanSaan on Sep 08, 2020
class recursion { 
	static Node head; // head of list 
	static class Node { 
		int data; 
		Node next; 
		Node(int d) 
		{   data = d; 
			next = null; 	} } 
	static Node reverse(Node head) 
	{ 
		if (head == null || head.next == null) 
			return head; 
		/* reverse the rest list and put the first element 
        at the end */
		Node rest = reverse(head.next); 
		head.next.next = head; 
		/* tricky step -- see the diagram */
    	head.next = null; 
		/* fix the head pointer */
		return rest; 
	}  /* Function to print linked list */
	static void print() 
	{ 
		Node temp = head; 
		while (temp != null) { 
			System.out.print(temp.data + " "); 
			temp = temp.next; 
		} 
		System.out.println(); 
	} 
	static void push(int data) 
	{ 
		Node temp = new Node(data); 
		temp.next = head; 
		head = temp; 
	} /* Driver program to test above function*/
public static void main(String args[]) 
{ 
	/* Start with the empty list */
	push(20); 
	push(4); 
	push(15); 
	push(85); 
	System.out.println("Given linked list"); 
	print(); 
	head = reverse(head); 
	System.out.println("Reversed Linked list"); 
	print(); 
} } // This code is contributed by Prakhar Agarwal 

Add Comment

4

Revese a Linked List

By Wandering WolverineWandering Wolverine on May 28, 2021
LinkedList<Integer> ll = new LinkedList<>();

ll.add(1);
ll.add(2);
ll.add(3);
System.out.println(ll);

LinkedList<Integer> ll1 = new LinkedList<>();

ll.descendingIterator().forEachRemaining(ll1::add);

System.out.println(ll1);

Source: www.journaldev.com

Add Comment

0

reverse linkedlist

By Wandering WolverineWandering Wolverine on May 13, 2021
Collections.reverse(list);

Source: stackoverflow.com

Add Comment

0

Both solution worked but passing pointers directly were much simpler and more effective.

C++ answers related to "reverse linked list"

View All C++ queries

C++ queries related to "reverse linked list"

reverse a linked list how to reverse a linked list reverse linked list c++ linked list clear cpp linked list linked list insertion in c++ circular queue using linked list in c++ linked list in c++ stl infix to prefix using cpp linked list program linked list in c++ using class insert delete display in array menu driven program to delete in linked list linked list operations linked list class c++ basic implementation print circular linked list c++ linked list c++ reverse vector how to sort a vector in reverse c++ vector sort in reverse order c++ reverse string efficient in cpp without using function c++ reverse string reverse sort cpp how to reverse a string in c++ reverse an array in cpp string reverse stl how to reverse a character array in c++ Reverse string C++ for loop reverse C++ how to reverse a vector reverse string in c++ without using function reverse an array in c++ c++ reverse array c++ reverse part of vector std::reverse reverse c++ c++ program to reverse an array reverse() in c++ reverse a vector reverse a vector c++ stl function to reverse an array reverse an array in c++ using while loop string reverse iterator c++ reverse iterator c++ reverse in vector c++ reverse evaluate reverse polish notation gfg list conda environments how to print list in c++ grocery shopping list c++ chegg c++ remove multiple items from list delete a head node in link list how to make a list in c++ traverse through list c++ cpp std list example how to get an element in a list c++ list in cpp member initializer list in c++ initialization list c++ how to write C++ list c++ append to list c++ class member initializer list c++ remove item from list c++ com port list list in c++ stl c++ iterate through constant list list clear c++ list of products on e commerce websites c++ list pop back Given the following declarations below. Write a loop to read a list of numbers from the keyboard terminated by -999 and store the even numbers (skip over the odd numbers) in the vector v. clean list widget qt error: invalid use of template-name without an argument list qt widget list set selected c++ initialization list C++ drop last element of list c++ argument list for class template is missing attack on titan junior high list of episodes initializer list c++ list stl conda list environments how to show list of conda packages adjacency list representation of graph c++ list add

Browse Other Code Languages

CodeProZone