關于尋找前驅時,傳入節點的判斷
template<typename?T>
bool?List<T>::PriorElem(T?*?currentElem,?T?*?preElem)
{
if?(currentElem?==?m_pList->next)//判斷傳入節點是否為頭結點后面的節點
{
return?false;
}
Node?*temp=m_pList;
Node?*tempBefore=NULL;
while(temp->next?!=?NULL)
{
tempBefore=temp;
temp=temp->next;
if?(temp->data?==?currentElem->data)
{
preElem->data=tempBefore->data;
return?true;
}
}
return?false;
}我用了模板類,這個可以無視,只想知道判斷?傳入節點 是否為 頭結點后面的節點?這個功能有沒有必要放在while循環里面
因為不用判斷傳入的data與鏈表內的data是否相同,只需要判斷節點是否相同即可,老師那樣會多出不必要的循環碼?
2017-03-03
個人覺得完全可以的,畢竟判斷老師的和你的代碼都是用結點的位置來判斷結點是否相同。老師的還多了一步判斷結點值而已。