单链表的环操作-创新互联

链表介绍:

站在用户的角度思考问题,与客户深入沟通,找到山南网站设计与山南网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站建设、企业官网、英文网站、手机端网站、网站推广、主机域名、网页空间、企业邮箱。业务覆盖山南地区。

单链表演示图:单链表的环操作

创建结构体

typedef int DataType;

typedef struct ListNode

{

DataType data;

struct ListNode *pNext;

}SListNode, *PSListNode;

单链表的环操作单链表的环操作

PSListNode FindEnterNode(PSListNode pHead, PSListNode pMeetNode)

{

PSListNode pNode1 = pHead;

PSListNode pNodeM = pMeetNode;

if (pHead == NULL || pMeetNode == NULL)

{

return NULL;

}

while (pNode1 != pNodeM)

{

pNode1 = pNode1->pNext;

pNodeM = pNodeM->pNext;

}

return pNode1;

}

判断两个链表


是否相交:

单链表的环操作

int IsListCroseWithCycle(PSListNode pL1, PSListNode pL2)

{

PSListNode pL1MeetNode = NULL;

PSListNode pL2MeetNode = NULL;

PSListNode pL1Node = pL1;

PSListNode pL2Node = pL2;

PSListNode pNode = NULL;

if (pL1 == NULL || pL2 == NULL)

{

return 0;

}

pL1MeetNode = HasCycle(pL1Node);

pL2MeetNode = HasCycle(pL2Node);

//都不带环

if (pL1MeetNode == NULL && pL2MeetNode == NULL)

{

while (pL1Node->pNext != NULL)

{

pL1Node = pL1Node->pNext;

}

while (pL2Node->pNext != NULL)

{

pL2Node = pL2Node->pNext;

}

if (pL1Node == pL2Node)

{

return 1;

}

return 0;

}

//两个都带环

if (pL1MeetNode != NULL && pL2MeetNode != NULL)

pNode = pL1MeetNode;

{

while (pNode->pNext != pL1MeetNode)

{

if (pL2MeetNode == pNode)

{

return 1;

}

pNode = pNode->pNext;

}

return 0;

}

}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:单链表的环操作-创新互联
网页网址:http://lszwz.com/article/ghsod.html

其他资讯

售后响应及时

7×24小时客服热线

数据备份

更安全、更高效、更稳定

价格公道精准

项目经理精准报价不弄虚作假

合作无风险

重合同讲信誉,无效全额退款