王道数据结构2.2.3——16、判断一个单链表是否为另一个单链表的连续子序列

思路

同时遍历A和B两个单链表,

1、若ra指针和rb不一样,ra往后移一位,rb移到开头;

2、ra和rb相同,两个同时移一位,继续比较。

有两种情况要考虑到:A表比B表短、A表比B表长。所以最后判断条件为:rb是否到底。

代码

bool find_child(LinkList A, Linklist B){
    LNode *ra = A->next, *rb = B->next, *temp=A->next;
    while(ra != NULL && rb != NULL){
        // 如果两个数不同
        if(ra->data != rb->data) {
            ra = temp->next;
            temp = ra;
            rb = B->next;
        // 如果两个数相同
        } else {
            ra = ra->next;
            rb = rb->next;
        }
    }
    if(rb==NULL)
        return true;
    return false;
}

 

你可能感兴趣的:(王道数据结构)