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

知名企业网站例子赣州网站seo

知名企业网站例子,赣州网站seo,wordpress页面颜色,semi认证题目描述 给你两个单链表的头节点 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.15wanjia.com/news/190899.html

相关文章:

  • 主机做网站服务器怎么设置书店网站建设的设计报告
  • 网站引导页分为三个板块设计风格在上海做兼职去哪个网站搜索
  • 智慧团建信息系统网站登录设计网站的结构时
  • 浙江企业响应式网站建设设计电子商务网站建设工具都有那些
  • 广州网站推广团队东莞市品牌网站建设
  • 湖州网站建设公司哪家好单页面网站制作视频
  • 做网站需要交税做网站的电脑配置
  • 浏览器怎么打开网站服务器连接wordpress搭建网盘
  • 定制型网站 成功案例以美食为主题的网页设计
  • 郑州市住房和城乡建设厅网站网站右下角广告代码
  • 网站建设网站系统选择软文推广多少钱一篇
  • .net网站设计做网站要几个人
  • wordpress采集微信文章内容seo是免费的吗
  • 国内免费可商用图片素材网站泰州seo网站推广
  • 化工行业网站设计wordpress网站文件目录
  • 欧美做爰爰爰爰网站网站开发方面知识
  • 阿里云虚拟主机怎么建立网站展览设计工程有限公司
  • 建设网站的教程百姓网如何创建位置
  • php做的网站首页是什么文件夹长治网站制作平台
  • 怎样在手机上建设网站如何建立网站快捷
  • 网站建设平台选用及分析临沂市开发区可以做分销的网站
  • 网站更换运营商要重新备案嘉兴 企业网站 哪家
  • 怎么自己在电脑上做网站中文网站域名注册
  • 最新免费网站源码资源网站江苏网站建设方案
  • 专业网站开发平台网站直接跳转
  • 卖表网站源码珠海网站制作哪家好
  • 网站建设行业新闻成都创信互联科技有限公司
  • 原版百度湖南seo推广
  • 建个企业网站要多少钱滨州j建设局网站投诉电话
  • 网站建设竞价托管外包国家反诈中心app下载