双向循环链表结点定义为:
struct node
{
int data;
struct node *front,*next;
};
有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除。
思路:
用一个map<int,int>,将A中所有的节点值信息加进去,key为 node->data,value为0,然后,遍历B,将B中data值在map中的节点删除,并将map中对应key的value置为1.然后再遍历A,将value为1的key对应的节点删除。时间复杂度为O(2m+n),空间复杂度为O(m).