Untitled
unknown
c_cpp
a year ago
1.8 kB
8
Indexable
#include<bits/stdc++.h> using namespace std; class Node{ public: int data; Node* next; Node(int value){ data = value; next = nullptr; } Node(int value, Node* valNext){ data = value; next = valNext; } }; Node* arrayToLL(vector<int> &arr){ Node* head = new Node(arr[0]); Node* mover = head; // Node* mover = head; for(int i=1; i<arr.size(); i++){ Node* temp = new Node(arr[i]); mover->next = temp; mover = temp; } return head; } Node* traverseLL(Node* head = nullptr){ if(!head){ cout<<"Plese Provide atleast one node!"; } Node* temp = head; while(temp){ cout<<temp->data<<" -> "; temp = temp->next; if(!temp){ cout<<"NULL"; } } } Node* removeNthNode(Node* head, int n){ // if list is empty if(head == NULL) return head; // if n == 1 means only one node if(n == 1){ Node* temp = head; head = head->next; delete temp; return head; } // if n==3 or 4 or 5 int count = 0; Node* temp = head; Node* prev = NULL; while(temp){ count++; if(count == n){ prev->next == prev->next->next; free(temp); cout<<n<<"yes"<<endl; return head; } prev = temp; temp = temp->next; } return head; } int main(){ vector<int> arr = {1, 2, 3, 4, 5, 6, 7, 8, 9}; Node* head = arrayToLL(arr); traverseLL(head); cout<<endl; Node* head2 = removeNthNode(head, 9); traverseLL(head2); return 0; }
Editor is loading...
Leave a Comment