더블 링크드 리스트(DLL) 관련입니다.

DLL에서 노드삭제를 하려면 삭제할 노드의 NextNode 포인터가 가리키고 있던 노드를 앞 노드의 NextNode 포인터가 가리키게 바꾸고,
또 삭제할 노드의 PrevNode 포인터가 가리키고 있던 노드를 뒷 노드의 PrevNode 포인터가 가리키게 바꾼다. 그리고 삭제할 노드의 NextNode와 PrevNode는 깨끗하게 NULL로 초기화합니다.

네 말로된 설명은 이해를 하겠는데요. 요것을 c코드로 구현해보면

void DLL_RemoveNode (Node** Head, Node* Remove)
{
      if ( *Head == Remove )

       {

           *Head = Remove -> NextNode;

             if ( (*Head) != NULL )

               ( *Head ) -> PrevNode = NULL;

 

            Remove -> PrevNode = NULL;
            Remove -> NextNode = NULL;
        }
       else
        {
           Node* Temp = Remove;

           Remove -> PrevNode -> NextNode = Temp -> NextNode;

             if ( Remove -> NextNode != NULL )
               Remove -> NextNode -> PrevNode = Temp -> PrevNode;

            Remove -> PrevNode = NULL;
            Remove -> NextNode = NULL;
        }
}

-------------------------
이렇게 된다는데요. 다좋은데 Remove -> PrevNode -> NextNode = Temp -> NextNode; 요런 문장같이
\"->\" 가 많아서 해석을 잘 못하겠습니다. \"->\"이 들어간 문장들을 어떻게 해석하고 이해해야하나요?
서론이 너무 길어 죄송합니다..               
-------------------------