Node * findNode()
{
//初始化两个单向链表
M = LinkList(m), N = LinkList(n);
//初始化指向链表的指针 q p
//q 指向元素少的链表 q指向数据多的链表
Node *q,p;
if(m>=n){
q = N; p = M;
}
else{
q = M; p = N;
}
//查找节点位置
Node * res = null;
int i = 0;
do {
q= q->next;
i++;
//判断节点q是否在链表 p中
if(check(p, q, abs(n-m)+i)){
res = q;
break;
}
}while(q);
return res;
}
/**
**判断节点元素少链表的节点是否在节点元素大的单向链表中
**LinkList L 节点元素大的单向链表
**Node * node 节点元素少链表的节点
** 查询截至位置
*/
bool check(LinkList L, Node * node, int position){
//L 为头指针,count 截至位置;
p = L ->next; j = 1;
while( p && j <=position ){
if (*p=*node) break;
p = p -> next;
j++;
}
if(!p || j > position) return false;
return true;
}
评论