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; }
评论