算法思想:因为两个整数序列已存入两个链表中,操作从两个链表的第一个结点开始,若对应得数据相等,则后移指针,若对应的数据不等,则A列表从上次开始比较结点的后继开始,B链表仍从第一个结点开始,直到B链表到链尾匹配为止。
int pattern (LinkList A , LinkList B){ LNode* p = A; //p为A链表的工作结点,本题假设A和B均无头结点 LNode* pre = A; //记录每趟比较中A链表的开始结点 LNode* q = B; //q是B链表的工作结点 while(p&&q){ if(p->data == q->data){ p = p->next; q = q->next; } else{ pre = pre->next ; //A链表从上次开始比较结点的后继开始 p = pre; q= B; } } if(q==NULL) return 1; else return 0 ;