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

十堰优化网站哪家好上海公司网站seo

十堰优化网站哪家好,上海公司网站seo,centos7 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.yayakq.cn/news/115778/

相关文章:

  • html国外网站源码汽车营销策划方案ppt
  • 可信网站可信站点seo标题优化裤子关键词
  • 制作一个网站需要多少时间网站建设方案书 个人
  • 营销型公司网站电子商务网站建设素材
  • 景观设计理念网站内链优化的角度
  • 已经有域名如何做网站上海seo培训中心
  • 溧阳网站制作网页制作教程素材
  • 成都网上注册公司流程百度关键词优化工具
  • wordpress 网站标题wordpress电商建站
  • wordpress做过的大型网站吗wordpress thecontent
  • 做树状图的网站企业网站建设开发成本利润多少
  • 北京网站建设是什么亚i洲人页码24林妹妹
  • ip做网站地址wordpress需要学什么
  • 乐平市建设局网站wordpress 菜单无法保存
  • 找兼职做酒店网站淘宝官网首页登录
  • 备案新增网站备案网站标题设置
  • 网站网页区别写一篇推广商品的软文
  • 昆山做网站需要多少钱网站管理问题
  • 计算机应用技术网站开发介绍平和县建设局网站
  • 江苏省建设工程考试网站个人网站要备案么
  • 张家港企业做网站信息网站方案
  • 做网站会犯法吗网站开发中制作视频播放器
  • 做网站付多少定金企业网站虚假宣称iso9001的处罚案例
  • 做暧暧网站在线肇庆cms建站系统
  • 建设银行手机外汇网站重庆3号线
  • 网站运营需要服务器吗汝南企业网站建设
  • 网站搜索引擎关键字怎么做二手书网站建设报告
  • 桐城市美丽乡村建设专题网站如何推广网站方法
  • 临时工找工作网站做美缝苏州有名的设计公司
  • 网站开发脚本语言wordpress5安装环境