ÓÃHashtable¸¨Öú£¬±éÀúÒ»±éµ¥Á´±í¾ÍÄܸ㶨¡£
ʵ¼ùÖз¢ÏÖ£¬curr´Ó±íÍ·¿ªÊ¼£¬Ã¿´ÎÅжÏÏÂÒ»¸öÔªËØcurr.NetxÊÇ·ñÖظ´£¬Èç¹ûÖظ´Ö±½ÓʹÓÃcurr.Next = curr.Next.Next; ¾Í¿ÉÒÔɾ³ýÖظ´ÔªËØ¡ª¡ªÕâÊÇ×îºÃµÄËã·¨¡£Î¨Ò»µÄÀýÍâ¾ÍÊDZí⣬ËùÒÔµ½´ï±í⣬¾ÍbreakÌø³öwhileÑ»·¡£
public static Link DeleteDuplexElements(Link head)
{
Hashtable ht = new Hashtable();
Link curr = head;
while (curr != null)
{
if (curr.Next == null)
{
break;
}
if (ht[curr.Next.Data] != null)
{
curr.Next = curr.Next.Next;
}
else
{
ht[curr.Next.Data] = ¡°¡±;
}
curr = curr.Next;
}
return head;
}
½áÓ
µ¥Á´±íÖ»ÓÐÒ»¸öÏòÇ°Ö¸ÕëNext£¬ËùÒÔҪʹÓÃ1-2¸ö¶îÍâ±äÁ¿À´´æ´¢µ±Ç°ÔªËصÄÇ°Ò»¸ö»òºóÒ»¸öÖ¸Õë¡£
¾¡Á¿ÓÃwhileÑ»·¶ø²»ÒªÓÃforÑ»·£¬À´½øÐбéÀú¡£
ÍÛÈû£¬ÎÒ¾ÍÊDz»ÓÃÖ¸Õ룬ÕÕÑùÄÜ¡°Ð޸ĵØÖ·¡±£¬´ïµ½ºÍC++ͬÑùµÄЧ¹û£¬ËäÈ»ºÜ·³~
±éÀúµÄʱºò£¬²»ÒªÔÚwhileÑ»·ÖÐhead=head.Next;ÕâÑù»á¸Ä±äÔÏȵÄÊý¾Ý½á¹¹¡£ÎÒÃÇÒªÕâôд£ºLink curr=head;È»ºócurr=curr.Next;
ÓÐʱÎÒÃÇÐèÒªÁÙʱ°Ñ»·Çпª£¬ÓÐʱÎÒÃÇÐèÒªÁÙʱ°Ñµ¥Á´±íÊ×βÏàÁ¬³ÉÒ»¸ö»·¡£
¾¿¾¹ÊÇÍæcurr»¹ÊÇcurr.Next£¬¸ù¾Ý²»Í¬ÌâÄ¿¶ø¸÷ÓÐÓÃÎäÖ®µØ£¬Ã»Óж¨ÂÛ£¬²»±ØÇ¿Çó¡£