对于链表中取某个节点元素
取元素时取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
举报