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

商务网站建设规划线上推广的渠道有哪些

商务网站建设规划,线上推广的渠道有哪些,怎么做一个app的介绍,兰州移动端网站建设题目描述 给你两个单链表的头节点 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.mmbaike.com/news/44100.html

相关文章:

  • 网站建设哈尔滨网站建设1企业培训计划
  • 网上做论文的网站有哪些东莞百度推广优化排名
  • 做公司网站图片算是商用吗百度电话怎么转人工
  • 有风格的网站杭州网站定制
  • 中英文网站建设 pdf中企动力做网站推广靠谱吗
  • 美丽乡村建设网站模板seo网络推广机构
  • 200万做网站互联网推广引流是做什么的
  • 创业做app哪个网站好百度seo点击器
  • 做网站外包好做吗网页制作html代码
  • 平台网站怎么推广十大培训机构教育培训机构哪家好
  • 佳木斯做网站公司seo外包公司多吗
  • 陕西做天然气公司网站百度pc网页版入口
  • 如何自己建立网站seo搜索引擎优化价格
  • 做特色线路的旅游网站百度关键词购买
  • 重庆科技建设信息网站爱站seo工具包官网
  • 建设网站需要购买数据库吗苏州关键词排名提升
  • 番禺高端网站建设赣州seo外包
  • 做网站一般需要多久广州引流推广公司
  • 诚信网站认证怎么做东莞网络推广哪家公司奿
  • 金融投资网站建设长沙网站seo源头厂家
  • 有了php源码怎么做网站企业高管培训课程有哪些
  • 那个网站是做辅材批发的互联网营销师证书怎么考多少钱
  • 手机网站模板用什么做江东怎样优化seo
  • 网站中弹出广告怎么做免费注册个人网站不花钱
  • wordpress插件 忍者弹窗昆明seo培训
  • 网站设置请求桌面网站湖南seo网站策划
  • 杭州旅游团购网站建设免费的推广引流软件
  • 长春微信做网站舆情分析报告模板
  • 网站建设供需哔哩哔哩推广网站
  • 怎么在百度上做自己的网站如何做百度免费推广