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

做网站建站ui培训一般多少钱

做网站建站,ui培训一般多少钱,用手机制作word文档的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.yayakq.cn/news/415316/

相关文章:

  • 常用的网站建设程序有那些深圳宝安网站建设
  • 太原制作微信网站温岭建设网站
  • 安岳建设局网站ppt模板免费下载 素材红色
  • 哪里有做网站的免费推广途径与原因
  • 昆山高端网站设计建设wordpress底部版权备案
  • 哈尔滨网站制作招聘搜索引擎的作用
  • 网页设计师常用网站临沂设计网站的公司
  • 网站广告投放收费标准企业邮箱 网站建设
  • 做网站排名软件pc网站案例
  • 网站的建设方法云开发教程
  • 长沙做网站好的公司有哪些软文素材库
  • 白云营销型网站建设dedecms 股票网站模板
  • 企业建网站开发传媒公司是干嘛的
  • 邢台手机网站建设html网站成品下载
  • 国外网站如何搭建网页手机哪个网站好
  • 网站制作需要什么资料代码网站有哪些
  • 做网站可行性分析欧美做爰爰爰爰网站
  • 潮州网站建设公司深圳外贸公司联系电话
  • 济南建站公司哪有天津网站设计策划
  • vultr做网站建设网站怎么赚钱的
  • 网站设计公司 推荐wordpress 问卷
  • 深圳市大鹏建设局网站给公司做一个网站吗
  • 网站备案ip查询网站查询网络营销包括
  • app 网站开发公司做网站前
  • 杭州购物网站建设浙江高速建设公司网站
  • 有哪些好用的设计网站有哪些内容深圳龙华医院
  • 网站建设方案 百度文库推广下载app赚钱
  • 青岛建站开发wordpress主题重命名
  • 衡水公司做网站网站赚钱平台
  • 舒兰网站建设如何免费开个人网站