1已知head是非空单链表的头指针,p结点既不是头结点,也不是尾结点,q是尾结点的前驱结点。
且所有结点都已具有如下形式的结构定义:
struct node
{
int data;
struct node *next;
}*p,*q;
则删除链表的尾结点可用以下语句:
while(p->next->next != NULL)
{
p = p->next;
}
free(p->next);
p->next = NULL;
2若已建立下面的链表结构,指针p、q分别指向图中所示结点,则下面两种方式可将q所指的结点插入到链表末尾
1)
p = (*p).next;
(*q).next = (*p).next;
(*p).next = q;
2)
q->next = NULL;
p = p->next;
p->next = q;