当前位置: 首页 > news >正文

商务网站建设规划网络推广优化平台

商务网站建设规划,网络推广优化平台,wordpress插件汉化不全,wordpress 淘宝客页面题目描述 给你两个单链表的头节点 headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null。图示两个链表在节点 c1 开始相交: 题目数据保证整个链式结构中不存在环。注意,函数返回结果后&…

题目描述

给你两个单链表的头节点 headAheadB,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null。图示两个链表在节点 c1 开始相交

题目数据保证整个链式结构中不存在环。注意,函数返回结果后,链表必须保持其原始结构 。

解题思路

暴力求解

在A链表中遍历每一个结点,去B链表中依次找一遍,但是这种方法的时间复杂度为O(N^2),因此,这种方法想必不太好,就不写代码实现了。

优雅解法

我们可能会这样想,如果在交点前同样距离远的位置同时开始遍历两个链表,那么在接下来的遍历过程中肯定会遍历到同一个结点,当第一次遍历到同一个结点时,那么这个结点就必然是交点。那么问题来了,我们刚才的假设是在交点前同样距离远的位置同时开始遍历两个链表,那么怎么才能做到这样呢?这两个链表的长度很可能是不一样的。我们这样想,分别遍历A、B这两个链表,同时计算这两个链表的长度,如果最终遍历到同一个结点,那么这两个链表必然相交,因此我们也可以计算出这两个链表长度的差值(假设为dif)。得到的这个差值很关键,我们让较长的链表先开始走dif步,然后两个链表再同时继续遍历,当遍历到同一个结点时,这个结点就是交点。

实现代码如下:

struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) 
{struct ListNode* curA=headA;struct ListNode* curB=headB;int sizeA=1;int sizeB=1;while(curA->next){curA=curA->next;sizeA++;}while(curB->next){curB=curB->next;sizeB++;}//判断相交if(curA != curB)return NULL;int dif=abs(sizeA-sizeB);curA=headA;curB=headB;//长的先走dif步if(sizeA > sizeB){while(dif--){curA=curA->next;}}else{while(dif--){curB=curB->next;}}//一起走while(curA != curB){curA=curA->next;curB=curB->next;}return curA;  
}

http://www.shuangfujiaoyu.com/news/18296.html

相关文章:

  • wordpress排除分类无锡seo网站管理
  • 网站建设与管理好吗seo优化一般包括
  • 广东企业移动网站建设哪家好拓客团队怎么联系
  • 网站设计的优点和缺点搜狗网站提交入口
  • 百度推广 url主域名和注册网站不一致中山网站建设
  • 家具 东莞网站建设搭建网站基本步骤
  • 网站前后台网站域名查询
  • 动态网站如何做常见的推广平台有哪些
  • wordpress需要安装php模块求职seo
  • 历史网站怎么做百度seo白皮书
  • 网站开发体会范文网站查询ip地址
  • 在哪个网站做服装代理批发软文发布的平台与板块
  • 做彩投网站犯法吗百度账号找回
  • 电影网站做静态是不是好一些外贸推广
  • 微信网站开发工具优化模型数学建模
  • 网站上线需要多久河南专业网络推广公司
  • abp网站开发媒体软文推广平台
  • 免费个人网站源码下载班级优化大师手机版下载
  • 成都网站网络公司磁力猫最好磁力搜索引擎
  • 汽车网站建设论坛网络优化seo薪酬
  • 做介绍美食网站的菜单的怎样推广自己的app
  • 网站日常推广怎么做东莞百度推广优化公司
  • 做网站需要买服务器吗百度外推代发排名
  • 官方网站建设需求规格说明书客户推广渠道有哪些
  • 专业上海网站建设公司东莞做网站的公司吗
  • 网站建设教学长沙快速排名优化
  • 安徽省建设协会网站抄一则新闻四年级
  • 怎么做淘客的网站关键词词库
  • 买卖域名的网站好营业推广
  • 哪些网站是ruby做的女性广告