스택에서 값의 모든 어커런스를 제거해야합니다. 이것은 내 코드이지만 어떻게 든 while 문에 문제가 있습니다. pTmp
가 while (pTmp.Next != null)
에서, 그래서C#에서 RemoveAll 메서드를 만드는 방법은 무엇입니까?
, 그것은 while 문을 강조하고 pTmp.Next.Next
의 할당 된 값이 null
이 될 수 있습니다 라인 pTmp.Next = pTmp.Next.Next;
에서 나에게 처리되지 않은 예외 "System.NullReferenceException"
public bool RemoveAll(T value)
{
if (Count == 0)
return false;
if (Count == 1)
{
if (mTop.Data.Equals(value))
{
mTop = mTop.Next;
return true;
}
}
else
{
OurListNode<T> pTmp = mTop;
while (pTmp.Next != null)
{
if (pTmp.Next.Data.Equals(value))
{
pTmp.Next = pTmp.Next.Next;
}
pTmp = pTmp.Next;
}
return true;
}
return false;
}
, 그것은 while 문을 강조하고 나에게 "System.NullReferenceException" –