codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <iostream> using namespace std; struct Node { int data; Node* next; }; Node* arrayToList(const int arr[], size_t size) { Node* list = /*nullptr*/0; Node* item = /*nullptr*/0; if(!size) return 0; for( size_t elem = 0; elem < size; elem++ ) { Node * a = new Node; a->data = arr[elem]; a->next = 0; if( item ) { item->next = a; item = item->next; } else list =item = a; } return list; } Node* removeOdd(Node* head) { Node* list = /*nullptr*/0; Node* item = /*nullptr*/0; Node* prev = /*nullptr*/0; if ( (item = prev = head) != 0 ) { for( item = item->next; item; item = item->next ) { if( item->data % 2 ) { prev->next = item->next; cout<<"delete : "<<item->data<<endl; delete item; item = prev; } else prev = item; } if( head->data % 2 ) { list = head->next; cout<<"delete : "<<head->data<<endl; delete head; } } return list; } void showList(const Node* head) { if (! head) { cout << "List is empty" << endl; return; } else { Node *list = const_cast<Node*>(head); while(list) { cout << list->data << " "; list = list->next; } cout << endl; } } int main(){ int arr[] = {1,2,3,4,5,6}; size_t size = sizeof(arr)/sizeof(*arr); Node* list = arrayToList(arr, size); showList(list); list = removeOdd(list); showList(list); cin.get(); return 0; }
Private
[
?
]
Run code
Submit