환형 링크드 리스트 부분에 노드 삭제 함수 구현부분 중 궁금증이 생겨서 글 남깁니다
2010-07-15
|
by wiseheart
2555
안녕하세요, 뇌를 자극하는 알고리즘 책 잘 보고 있습니다.
환형 링크드 리스트 부분에 노드 삭제 함수 구현부분 중 궁금증이 생겨서 글 남깁니다 ㅎㅎ
------------------------------------------------------
void RemoveNode(Node** Head, Node* Remove)
{
if(*Head==Remove)
{
(*Head)->PrevNode->NextNode=Remove->NextNode;
(*Head)->NextNode->PrevNode=Remove->PrevNode;
*Head=Remove->NextNode;
Remove->PrevNode=NULL;
Remove->NextNode=NULL;
}
else
{
Node* Temp=Remove;
Remove->PrevNode->NextNode=Temp->NextNode;
Remove->NextNode->PrevNode=Temp->PrevNode;
Remove->PrevNode=NULL;
Remove->NextNode=NULL;
}
}
-------------------------------------------------
여기서 굳이 Temp 노드를 생성하는지 잘 모르겠네요. 그냥
Remove->PrevNode->NextNode=Remove->NextNode;
Remove->NextNode->PrevNode=Remove->PrevNode;
형태로 해도 되는거 아닌가욤? ㅎㅎ
귀찮게 해서 죄송합니다..