删除链表A中与链表B结点相同的结点

该博客介绍了如何删除链表A中与链表B中值相同的结点。通过双层循环遍历,比较A链表当前结点与B链表所有结点,如果找到匹配值则标记删除并更新B链表指针。操作时要注意参数传递为头结点的二级指针,以及四种不同删除情况的处理:删除头结点、删除非头结点、不删除头结点、不删除非头结点。
摘要由CSDN通过智能技术生成

题目描述:
有两串链表表示为A和B,删除链表A中的结点,满足删除条件的结点是该结点与链表B中某结点的值相同。
代码如下:

# include <iostream>

using namespace std;

typedef struct List
{
    int value;
    struct List * next;
} pList;

int deleteNode(pList *, pList*);
void createList(pList *, int[], int);
void printList(pList *);

int deleteNode(pList **pListHead, pList *pDeleteListHead)
{
    if (*pListHead == NULL || pDeleteListHead == NULL)
        return 0;
    int cnt = 0;
    pList *pNode = *pListHead;
    pList *pDeleteNode = pDeleteListHead;
    pList *pNewHead = NULL;
    while (pNode != NULL)
    {
        pList *qNode = pNode -> next;
        boo
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值