手把手教你写考研数据结构代码题

day10
头插法建立单链表,需要在while循环中的最后加一句scanf("%d", &x);,建议使用cin>>x;
day11
尾插法创建单链表和day10有同样的问题,建议创建好头节点L后,立即L->next=NULL;,可减少出错
day12
方法一:可以看作是两个单链表,L为第一个单链表(带头结点),r为第二个单链表(不带头结点),不断从链表r中拿出第一个结点,对L做头插法
方法二:可以看作是三个单链表,L为第一个单链表(实际上只有一个空结点),pre是第二个单链表(不带头结点),r是第三个单链表(不带头结点),while循环中,不断从链表r中拿出其第一个结点p,对pre做头插法,循环结束后,此时链表pre的第一个结点为p,将L->next = p,相当于给链表pre添加了一个头结点。
方法三(自己的):
LinkList reverse(LinkList &L){
LNode *p, *q;
p = L->next; q = p->next;
while(q){
p-next = q->next; //先删除
q->next = L->next; //头插法
L->next = q;
q = p->next; // 指向原q的下一个结点
}
return L;
}