File tree Expand file tree Collapse file tree 1 file changed +74
-0
lines changed
Expand file tree Collapse file tree 1 file changed +74
-0
lines changed Original file line number Diff line number Diff line change 1+ // Reorder all odd-positioned nodes together followed by all even-positioned nodes
2+
3+ #include < iostream>
4+ using namespace std ;
5+
6+ struct Node {
7+ int data;
8+ Node* next;
9+ Node (int val) : data(val), next(nullptr ) {}
10+ };
11+
12+ class LinkedList {
13+ public:
14+ Node* head;
15+
16+ LinkedList () : head(nullptr ) {}
17+
18+ void insert (int val) {
19+ Node* newNode = new Node (val);
20+ if (!head) {
21+ head = newNode;
22+ return ;
23+ }
24+ Node* temp = head;
25+ while (temp->next )
26+ temp = temp->next ;
27+ temp->next = newNode;
28+ }
29+
30+ void oddEven () {
31+ if (!head || !head->next ) return ;
32+
33+ Node* odd = head;
34+ Node* even = head->next ;
35+ Node* evenHead = even;
36+
37+ while (even && even->next ) {
38+ odd->next = even->next ;
39+ odd = odd->next ;
40+ even->next = odd->next ;
41+ even = even->next ;
42+ }
43+
44+ odd->next = evenHead;
45+ }
46+
47+ void print () {
48+ Node* temp = head;
49+ while (temp) {
50+ cout << temp->data << " " ;
51+ temp = temp->next ;
52+ }
53+ cout << endl;
54+ }
55+ };
56+
57+ int main () {
58+ LinkedList ll;
59+ ll.insert (1 );
60+ ll.insert (2 );
61+ ll.insert (3 );
62+ ll.insert (4 );
63+ ll.insert (5 );
64+
65+ cout << " Original List: " ;
66+ ll.print ();
67+
68+ ll.oddEven ();
69+
70+ cout << " Odd-Even List after reordering: " ;
71+ ll.print ();
72+
73+ return 0 ;
74+ }
You can’t perform that action at this time.
0 commit comments