關于尋找前驅時,傳入節點的判斷
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
個人覺得完全可以的,畢竟判斷老師的和你的代碼都是用結點的位置來判斷結點是否相同。老師的還多了一步判斷結點值而已。