C++로 이진탐색트리 구현중인데


Node* Node::Add(Node** Root, int _ID)
{
        *this = *(new Node);
        ID = _ID;

        Node *pPreNode, *pTmpNode;        
        pPreNode = NULL;
        pTmpNode =  *Root;

        while (pTmpNode != NULL)
        {
                if ( ID == pTmpNode->ID)
                        return;

                pPreNode = pTmpNode;

                if (ID < pTmpNode->ID)
                        pTmpNode = pTmpNode->Left;
                else
                        pTmpNode = pTmpNode->Right;
        }

        if (pPreNode != NULL)
        {
                if( ID < pPreNode->ID )
                        pPreNode->Left = this;
                else if( ID > pPreNode->ID )
                        pPreNode->Right = this;
                else
                        ProgramError(0);
        }
        else
                *Root = this;
}

위에 굵은 글씨부분 저렇게 해도 되는건가?

노드 생성할때는 
Node* pNode = pNode->Add(Root, 0001);
이런식으로 하려고