链表

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; 

原文地址:https://www.cnblogs.com/emptyCoder/p/5152444.html