49 void setSibling(T sibling) { _sibling = sibling; }
50 const T getSibling()
const {
return _sibling; }
65 newNode->setSibling(getHead());
69 bool remove(T removeNode)
72 if (removeNode == _head) {
77 for (T node = getHead(); node !=
nullptr; node = node->getSibling()) {
79 if (node->getSibling() == removeNode) {
81 if (node->getSibling() !=
nullptr) {
82 node->setSibling(node->getSibling()->getSibling());
85 node->setSibling(
nullptr);
99 operator T()
const {
return node; }
100 operator T &() {
return node; }
101 T operator* ()
const {
return node; }
105 node = node->getSibling();
115 const T getHead()
const {
return _head; }
117 bool empty()
const {
return getHead() ==
nullptr; }
123 for (
auto node = getHead(); node !=
nullptr; node = node->getSibling()) {
130 void deleteNode(T node)
140 auto node = getHead();
142 while (node !=
nullptr) {
143 auto next = node->getSibling();