对于链表中取某个节点元素
取元素时取i=m_iLength不就是取最后一个节点的元素吗,为什么不可以?
取元素时取i=m_iLength不就是取最后一个节点的元素吗,为什么不可以?
2016-12-20
bool List::GetElem(int i, Node *pNode) { if(i < 0 || i >= m_iLength) return false; Node *currentNode = m_pList; for(int k = 0; k < i; k++) { currentNode = currentNode->next; } pNode->data = currentNode->data; return true; }
当i=m_iLength时,currenNode已经为尾节点指向NULL,而不是指向最后元素的节点;
所以要去取最后一个元素的应该是 i = m_iLength-1;
if(i < 0 || i >= m_iLength) return false;
所以这里判断i是否是有效值,就应不包括等号;
^.^Y
举报