Hi Everyone,
Kindly, I need some help with this code. This question is about I have to convert single linked list to doubly linked list. so, I tried to solve this but I have some errors.
This is a single linked list before converting
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
template< typename NODETYPE >
void List< NODETYPE >::insertAtFront( const NODETYPE &value )
{
ListNode< NODETYPE > *newPtr = getNewNode( value ); // new node
if ( isEmpty() ) // List is empty
{
firstPtr = lastPtr = newPtr;
}
// new list has only one node
else // List is not empty
{
newPtr->nextPtr = firstPtr; // point new node to previous 1st node
firstPtr = newPtr; // aim firstPtr at new node
} // end else
} // end function insertAtFront
template< typename NODETYPE >
void List< NODETYPE >::insertAtFront( const NODETYPE &value )
{
ListNode< NODETYPE > *newPtr = getNewNode( value ); // new node
ListNode< NODETYPE > *temp;
if ( isEmpty() ) // List is empty
{
newPtr = new Node;
firstPtr = newPtr;
lastPtr = newPtr;
newPtr ->nextPtr = NULL;
newPtr ->prevPtr = NULL;
newPtr ->data = value;
}
// new list has only one node
else // List is not empty
{
newPtr->nextPtr = firstPtr; // point new node to previous 1st node
firstPtr = newPtr; // aim firstPtr at new node
} // end else
} // end function insertAtFront
ListNode< NODETYPE > *newPtr = getNewNode( value ); // new node
...
newPtr = new Node;
Memory leak?
1 2 3 4 5 6
else // List is not empty
{
newPtr->nextPtr = firstPtr; // point new node to previous 1st node
firstPtr->prevPtr = newPtr;
firstPtr = newPtr; // aim firstPtr at new node
} // end else