给定两个单链表,编写算法找出两个单链表的公共结点(暴力解题,优化解题)
创始人
2024-01-31 07:31:43
0

算法思想一:暴力解题,设置两个指针p,q,其中q遍历一次单链表,q向后移动一位,直到两个指针指向同一个结点为止。

void search(LinkList L, LinkList S){

LNode *p=L->next;

LNode *q=S->next;

while(p!=NULL){

while(q!=NULL)

{

if(q=p)//如果指向同一个结点

return q;

else

q=q->next;

}

p=p->next;

q=S->next;

}

}

算法思路二:优化的关键是两个链表指针同时移向指向相同的结点,此时时间复杂度就为两个链表长度之和

void INs(LinkList LA,LinkList LB){

int lenA=length(LA);//返回两个单链表的长度

int lenB=length(LB);

if(lenA>lenB)

        k=lenA-lenB;//p指针指向最长的那个链表

        LA->next=p;

        LB->next=q;

else

        k=LenB-LenA;

        LB->next=p;

        LA->next=q;

if(k>0&&p!=NULL){

        p=p->next;//p依次后移k位

        k--;

}

while(q!=NULL){

if(p=q)

        return q;//如果此时相等则返回

else

        p=p->next;

        q=q->next;//p,q指针同时后移

}

return 0;//查找失败

}

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...