hey, im trying to implement an avl tree by myself, was wondering if the struct i made for the avl node looks good so far (in particular the destructor, not sure if im supposed to be calling the destructor for the left and right before deleting them, or if the destructor is just called) and if anyone notices anything questionable.
struct avlNode
{
int m_data;
avlNode* m_left;
avlNode* m_right;
int height;
avlNode() { m_data = 0; m_left = m_right = nullptr; height = 0;}
avlNode(int data) { m_data = data; m_left = m_right = nullptr; height = 0;}
void setLeft(avlNode* x) {m_left = x;}
void setRight(avlNode* x) {m_right = x;}
int getData() {return m_data;}
avlNode* getLeft() {return m_left;}
avlNode* getRight() {return m_right;}
int getHeight() {return height;}
void setHeight(){
height = m_left->getHeight() - m_right->getHeight();
}
~avlNode()
{
delete m_left;
m_left = nullptr;
delete m_right;
m_right = nullptr;
}
};