Given a pointer to the head of a singly-linked list, print each data value from the reversed list. If the given list is empty, do not print anything.
Example:
Input: n=3, list: 1->2->3->NULL
Output: 3
2
1
Approach
C++
#include <bits/stdc++.h>using namespace std;class SinglyLinkedListNode{public:int data;SinglyLinkedListNode *next;SinglyLinkedListNode(int node_data){this->data = node_data;this->next = nullptr;}};class SinglyLinkedList{public:SinglyLinkedListNode *head;SinglyLinkedListNode *tail;SinglyLinkedList(){this->head = nullptr;this->tail = nullptr;}void insert_node(int node_data){SinglyLinkedListNode *node = new SinglyLinkedListNode(node_data);if (!this->head){this->head = node;}else{this->tail->next = node;}this->tail = node;}};void print_singly_linked_list(SinglyLinkedListNode *node, string sep){while (node){cout << node->data;node = node->next;if (node){cout << sep;}}}void free_singly_linked_list(SinglyLinkedListNode *node){while (node){SinglyLinkedListNode *temp = node;node = node->next;free(temp);}}void reversePrint(SinglyLinkedListNode *head){if (head == NULL)return;reversePrint(head->next);cout << head->data << endl;}int main(){SinglyLinkedList *llist = new SinglyLinkedList();int llist_count = 3;llist->insert_node(1);llist->insert_node(2);llist->insert_node(3);reversePrint(llist->head);return 0;}
No comments:
Post a Comment