C++ CODE
C++ CODE
using std::cout;
using std::endl;
class ListNode {
public:
int val_;
ListNode* next = nullptr;
ListNode(int val) {
val_ = val;
}
};
class Queue {
public:
// Implementing this with dummy nodes would be easier!
ListNode* left = nullptr;
ListNode* right = nullptr;
Queue() {}
// Queue is non-empty
if (right != nullptr) {
right->next = newNode;
right = right->next;
}
// Queue
else {
left = right = newNode;
}
}
int dequeue() {
// Queue is empty
if (left == nullptr) {
return -1; // Better to throw an exception
}
// Remove left node and return value
int val = left->val_;
left = left->next;
return val;
}
void print() {
ListNode* curr = left;
while (curr != nullptr) {
cout << curr->val_ << " -> ";
curr = curr->next;
}
cout << endl;
}
};