# delete a linked list node

*label*Programming

*timer*Asked: Apr 26th, 2018

*account_balance_wallet*$5

### Question Description

i wrote a code but i am not sure and my assignment is due today by midnight. if you do correction i appreciate.

#include <iostream>

using namespace std;

struct node {

int value;

node *next;

};

void insertAtEnd(node * list1);

void insertBetween(node * List1, int a, int b);

node* delete_first(node * root);

void delete_last();

void delete_position(node * root, int pos);

int main() {

node *root = new node;

node *current = new node;

current = root;

int inputValue = 0;

cout << "Enter no: ";

cin >> inputValue;

node *temp = new node;

temp->value = inputValue;

temp->next = NULL;

root = temp;

current = temp;

//BUILD LINKED LIST

do {

cout << "Enter no: ";

cin >> inputValue;

node *temp = new node;

temp->value = inputValue;

temp->next = NULL;

current->next = temp;

current = current->next;

} while (current->value != 0);

root = delete_first(root);

//PRINT LINKED LIST - TRAVERSE

current = root;

cout << endl << "Now printing the linked list..." << endl;

do {

cout << current->value << " ";

current = current->next;

} while (current->next != NULL);

cout << endl << "Print complete.";

int a;

cin >> a;

getchar();

return 0;

}

void insertAtEnd(node * list1) {

node *current = list1;

int inputValue = 0;

do {

if (current->next->next == NULL) {

current = current->next;

cout << endl << "Enter Value to new node: ";

cin >> inputValue;

node*temp = new node;

temp->value = inputValue; // assign value to new node

temp->next = NULL; // last node therefore ->next ==NULL

current->next = temp; // join temp with the list (current is last node in the list prior

current = current->next;// current now point to the last node in the list

}

else {

current = current->next;

}

} while (current->next != NULL);

}

void insertBetween(node * List1, int a, int b) {

node*current = List1;

int inputValue;

do {

if (current->value == a && current->next->value == b) {

cout << endl << "Enter value to new node:";

cin >> inputValue;

node*temp = new node;

temp->value = inputValue;

temp->next = current->next;

current->next = temp;

break;

}

else {

current = current->next;

}

} while (current->next != NULL);

}

node* delete_first(node * root)

{

node *temp = new node;

temp = root;

root = root->next;

delete temp;

return root;

}

void delete_last()

{

node *current = new node;

node *previous = new node;

//current = head;

while (current->next != NULL)

{

previous = current;

current = current->next;

}

//tail = previous;

previous->next = NULL;

delete current;

}

void delete_position(node * root, int pos)

{

node *current = new node;

node *previous = new node;

current = root;

for (int i = 1; i<pos; i++)

{

previous = current;

current = current->next;

}

previous->next = current->next;

}

### Unformatted Attachment Preview

This question has not been answered.

Create a free account to get help with this and any other question!

Brown University

1271 Tutors

California Institute of Technology

2131 Tutors

Carnegie Mellon University

982 Tutors

Columbia University

1256 Tutors

Dartmouth University

2113 Tutors

Emory University

2279 Tutors

Harvard University

599 Tutors

Massachusetts Institute of Technology

2319 Tutors

New York University

1645 Tutors

Notre Dam University

1911 Tutors

Oklahoma University

2122 Tutors

Pennsylvania State University

932 Tutors

Princeton University

1211 Tutors

Stanford University

983 Tutors

University of California

1282 Tutors

Oxford University

123 Tutors

Yale University

2325 Tutors