问答详情
源自:3-8 链表编码实战(六)

关于寻找前驱时,传入节点的判断

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是否相同,只需要判断节点是否相同即可,老师那样会多出不必要的循环码?

提问者:宝慕林3490596 2017-02-20 12:27

个回答

  • snaiiil
    2017-03-03 10:46:08
    已采纳

    个人觉得完全可以的,毕竟判断老师的和你的代码都是用结点的位置来判断结点是否相同。老师的还多了一步判断结点值而已。