You’re given the pointer to the head node of a linked list and a specific position. Counting backwards from the tail node of the linked list, get the value of the node at the given position. A position of 0 corresponds to the tail, 1 corresponds to the node before the tail and so on.
Input Format
You have to complete the int GetNode(Node* head, int positionFromTail)
method which takes two arguments - the head of the linked list and the position of the node from the tail. positionFromTail will be at least 0 and less than the number of nodes in the list. You should NOT read any input from stdin/console.
Output Format
Find the node at the given position counting backwards from the tail. Then return
the data
contained in this node. Do NOT print anything to stdout/console.
Sample Input
1 -> 3 -> 5 -> 6 -> NULL, positionFromTail = 0
1 -> 3 -> 5 -> 6 -> NULL, positionFromTail = 2
Sample Output
6 3 c++ code :
#include <iostream> #include<cstdio> #include<cstdlib> using namespace std; struct Node { int data; Node *next; };/* Get Nth element from the end in a linked list of integers Number of elements in the list will always be greater than N. Node is defined as struct Node { int data; struct Node *next; } */ int GetNode(Node *head,int positionFromTail) { // This is a "method-only" submission. // You only need to complete this method. if(head == NULL) return 0; Node *first = head; Node *sec = head; for(int i = 0; i < positionFromTail; i++) sec = sec->next; while(sec->next != NULL) { sec = sec->next; first = first->next; } return first->data; }void Print(Node *head) { bool ok = false; while(head != NULL) { if(ok)cout<<" "; else ok = true; cout<<head->data; head = head->next; } } Node* Insert(Node *head,int x) { Node *temp = new Node(); temp->data = x; temp->next = NULL; if(head == NULL) { return temp; } Node *temp1; for(temp1 = head;temp1->next!=NULL;temp1= temp1->next); temp1->next = temp;return head; } int main() { int t; cin>>t; while(t-- >0) { Node *A = NULL; int m;cin>>m; while(m--){ int x; cin>>x; A = Insert(A,x);} int n;cin>>n; cout<<GetNode(A,n)<<"\n"; } }