1. 总结:链表的头插法、尾插法、两个不同长度链表相加、减操作的处理方法
注意LinkNode* r=new LinkNode;语句的位置,不放在循环里,放在一开头就出错了。。。
2. 链表的头插法:
LinkNode *p=head;//这句话尤为重要,用p代替head。由于是浅拷贝,因此指向的是同一块内存,因此对p操作也能起到构建链表的效果,最后仍旧返回head即可
while(!=EOF){
LinkNode* r=new LinkNode;//C中等同于malloc,这句话必须每次循环都声明一遍!!!
cin>>num;
r->val=num;
//尾插法主要代码:
p->next=r;
p=r;
}
p->next=NULL;
3. 链表的尾插法:
LinkNode *p=head;//同理,浅拷贝,p和head指向一片内存
while(!=EOF){
LinkNode *r=new LinkNode;
cin>>num;
r->val=num;
//下面两句是头插法的主要代码
r->next=p->next;
p->next=r;
}
return head;
4. 两个不同长度链表相加、减操作的处理方法(遇到其他题目时的思想)
不同数组,字符串,链表。要对每一位操作,可以考虑补成一样长的数据,然后进行操作!