![B6BL5LI]%LBPSNP)8FTOC)K.png img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/289620754036143.png?x-oss-process=image/auto-orient,1/resize,w_320,m_lfit)

8FTOC)K.png img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/289620754036143.png?x-oss-process=image/auto-orient,1/resize,w_320,m_lfit)

//定义了一个函数,其返回值是Node的指针,两个形参是Node的指针的指针p1和p2(也就是两个链表)
{
if (*p1 == NULL) //如果p1是空指针(空链表)
return p2;//直接返回p2
if (*p2 == NULL)//如果p2是空指针(空链表)
return p1;//直接返回p1
Node* p = NULL;//声明一个Node的指针p
Node* pi = NULL;//声明一个Node的指针pi
Node* pj = NULL;//声明一个Node的指针pj
for (pi = *p1; pi!= NULL; pi=pi->_pNext)//通过pi对链表p1进行节点(Node)遍历
{
int isIn = 0;//声明一个整形isIn为0
for ( pj= *p2; pj!=NULL; pj=pj->_pNext)//通过pj对链表p2进行节点遍历
{
if (pi->_data==pj->_data)//如果p1某个节点的data值,和p2某个节点的data相等
{
isIn = 1;//则isIn赋值为1
}
}
if (isLn == 0)//如果经过pj对p2所有节点的遍历后isIn为0,说明当前p1节点的data值,和p2中所有节点的data值不等(即p1的该节点data值不在p2中存在,即不用被差运算除去)
{
ListPushBack(&p, pi->_data);//那么调用ListPusbBack函数,传入当前p1节点的data值,以更新差运算结果
}
}
return p;//返回差运算的结果
}