fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Node {
  5. public:
  6. int data;
  7. Node *next;
  8.  
  9. Node(int data){
  10. this->data = data;
  11. this->next = NULL;
  12. }
  13.  
  14. ~Node() {
  15. delete next;
  16. }
  17. };
  18.  
  19. void deleteAlternateNodes(Node *head) {
  20. Node *p = head, *q;
  21. while ((p != NULL) && (p->next != NULL)) {
  22. q = p->next;
  23. p->next = q->next;
  24. q->next = NULL;
  25. delete q;
  26. p = p->next;
  27. }
  28. }
  29.  
  30. Node* takeinput() {
  31. int data;
  32. Node *head = NULL, *tail = NULL;
  33. while ((cin >> data) && (data != -1)) {
  34. Node *newNode = new Node(data);
  35. if (head == NULL) {
  36. head = newNode;
  37. }
  38. else {
  39. tail->next = newNode;
  40. }
  41. tail = newNode;
  42. }
  43. return head;
  44. }
  45.  
  46. void print(Node *head) {
  47. while (head != NULL) {
  48. cout << head->data << ' ';
  49. head = head->next;
  50. }
  51. cout << endl;
  52. }
  53.  
  54. int main() {
  55. Node *head = takeinput();
  56. print(head);
  57. deleteAlternateNodes(head);
  58. print(head);
  59. delete head;
  60. return 0;
  61. }
Success #stdin #stdout 0.01s 5304KB
stdin
1 2 3 4 5 -1
stdout
1 2 3 4 5 
1 3 5