//å˜é‡
typedef struct node
{
int value;
struct node *next;
}mynode;
// Globals(ä¸æ˜¯å¿…需的)。
mynode *head, *tail, *temp;
//功能
void add(int value);
//å°†æ–°èŠ‚ç‚¹æ·»åŠ åˆ°é“¾è¡¨
的功能 void add(int value)
{
temp = (mynode *) malloc(sizeof(struct node));
temp->next=(mynode *)0;
temp->value=value;
if(head==(mynode *)0)
{
head=temp;
tail=temp;
}
else
{
tail->next=temp;
tail=temp;
}
}
// main()函数
int main()
{
head=(mynode *)0;
// Construct the linked list.
add(1);
add(2);
add(3);
return(0);
}
如果我åªæœ‰ä¸€ä¸ªæŒ‡å‘节点的指针,其值为3(上述代ç ä¸æ˜¾ç¤ºçš„最åŽä¸€ä¸ªèŠ‚点),我们å¯ä»¥åˆ 除它并将一个值为2(上述代ç )的节点作为最åŽä¸€ä¸ªèŠ‚点。
ç”案 0 :(得分:2)
ä¸ï¼Œä½ ä¸èƒ½ã€‚除éžä½ 对å‰ä¸€ä¸ªèŠ‚点有一些å‚考。åƒå¤´æŒ‡é’ˆã€‚å¦‚æžœä½ æœ‰å…¶ä»–å‚è€ƒæ¯”å®ƒæ›´å®¹æ˜“ã€‚äº‹å®žä¸Šï¼Œå¦‚æžœä½ æ²¡æœ‰ä»»ä½•æŒ‡é’ˆï¼Œä½ å°†ä¼šæ¾å¼€åˆ—表本身
ç”案 1 :(得分:0)
ä¸ï¼Œä½†å¦‚æžœä½ çŸ¥é“自己在åšä»€ä¹ˆï¼Œå°±å¯ä»¥å°±åœ°ä¿®æ”¹æœ€åŽä¸€ä¸ªèŠ‚ç‚¹ã€‚åˆ é™¤æœ€åŽä¸€ä¸ªèŠ‚点需è¦è®¿é—®å€’数第二个节点,特别是它到最åŽä¸€ä¸ªèŠ‚点的链接。
ç”案 2 :(得分:0)
æ˜¯çš„ï¼Œä½ å¯ä»¥..å°è¯•ä»¥ä¸‹ä»£ç :
void deleteNode()
{
mynode *temp1;
for(temp1 = head; temp->next!= tail; temp1 = temp1->next);
tail = temp1;
free(tail->next);
}
å®ƒå°†åˆ é™¤æœ€åŽä¸€ä¸ªèŠ‚点。
ç”案 3 :(得分:0)
ç”案是å¦å®šçš„。
您å¯ä»¥åœ¨æŒ‡å‘最åŽä¸€ä¸ªèŠ‚点的指针上调用free
,但这åªæ˜¯æ„味ç€ä¸å†å£°æ˜Žè¯¥èŠ‚点å 用的内å˜ã€‚æ•°æ®å¾ˆå¯èƒ½ä¼šåœ¨ä¸€æ®µæ—¶é—´å†…ä¿æŒä¸å˜ã€‚è¿™æ„味ç€å€’数第二个节点指å‘它的指针ä»ç„¶æœ‰æ•ˆï¼Œå³ä½¿å®ƒä¸åº”该。
è¦ä»¥å¯¹åˆ—表有æ„义的方å¼åˆ 除节点,必须使倒数第二个节点ä¸åŒ…å«çš„æŒ‡é’ˆæ— æ•ˆã€‚é™¤éžå¯ä»¥é€šè¿‡æŒ‡å‘它的直接指针或通过从å‰ä¸€ä¸ªèŠ‚点é历列表æ¥è®¿é—®å€’数第二个节点,å¦åˆ™æ— 法完æˆã€‚
ç”案 4 :(得分:0)
您å¯ä»¥ä½¿ç”¨åŒå‘链表æ¥è®¿é—®ä¸Šä¸€ä¸ªèŠ‚点。或者é历整个列表。