链表编程测试题:(提示:以下填空的答案,不要包括C语句的分号结束符;也不要加入过多的空格) 有以下作为链表结点的结构体类型的定义, struct node { int val; struct node *next; }; 定义一个头指针p的语句是:_______________________; 用一个语句静态地定义3个结点n1、n2、n3: ___________________________________; n1、n2、n3依次了一个链表Q,那么: n1.next=___________________; n2.next=___________________; n3.next=___________________; 使p指向链表Q的语句是:___________________; p->next=______________________; p->next->next=________________________; 要动态地产生1个结点,并用struct node型的指针变量q指向它,实现的语句为:______________________; 删除结点n2的实现语句为:_______________________; 删除结点n2后,要把上面动态产生的结点插入到n1和n3之间,用指针p、q来操作结点,实现的语句需要2句,按顺序分别是: ________________________; ________________________;