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

金乡网站建设哪家好今日发生的重大新闻

金乡网站建设哪家好,今日发生的重大新闻,在线建站网站,做特殊原产地证的网站目录 题目要求 手搓两个相交简易链表 代码实现 题目要求 两个单链表的头节点 headA 和 headB ,请找出并返回两个单链表相交的起始节点,如果两个链表不存在相交节点,则返回 NULL 手搓两个相交简易链表 代码演示: struct Lis…

目录

题目要求

手搓两个相交简易链表

代码实现 


题目要求

两个单链表的头节点 headA 和 headB ,请找出并返回两个单链表相交的起始节点,如果两个链表不存在相交节点,则返回 NULL


手搓两个相交简易链表

代码演示:

struct ListNode* a1 = (struct ListNode*)malloc(sizeof(struct ListNode));
assert(a1);
struct ListNode* a2 = (struct ListNode*)malloc(sizeof(struct ListNode));
assert(a2);a1->val = 1;
a2->val = 2;a1->next = a2;struct ListNode* b1 = (struct ListNode*)malloc(sizeof(struct ListNode));
assert(b1);
struct ListNode* b2 = (struct ListNode*)malloc(sizeof(struct ListNode));
assert(b2);
struct ListNode* b3 = (struct ListNode*)malloc(sizeof(struct ListNode));
assert(b3);b1->val = 1;
b2->val = 2;
b3->val = 3;b1->next = b2;
b2->next = b3;struct ListNode* c1 = (struct ListNode*)malloc(sizeof(struct ListNode));
assert(c1);
struct ListNode* c2 = (struct ListNode*)malloc(sizeof(struct ListNode));
assert(c2);
struct ListNode* c3 = (struct ListNode*)malloc(sizeof(struct ListNode));
assert(c3);c1->val = 1;
c2->val = 2;
c3->val = 3;a2->next = c1;
b3->next = c1;
c1->next = c2;
c2->next = c3;
c3->next = NULL;

代码实现

代码演示:

struct ListNode* getIntersectionNode(struct ListNode* headA, struct ListNode* headB)
{// 先找各自链表的尾节点,判断是否相交struct ListNode* tailA = headA;struct ListNode* tailB = headB;int lenA = 1;int lenB = 1;while (tailA->next != NULL){tailA = tailA->next;lenA++;}while (tailB->next != NULL){tailB = tailB->next;lenB++;}if (tailA != tailB)return NULL;// 找相交节点int gap = abs(lenA - lenB);struct ListNode* longList = headA;struct ListNode* shortList = headB;if (lenA < lenB){longList = headB;shortList = headA;}while (gap--){longList = longList->next;}while (longList != shortList){longList = longList->next;shortList = shortList->next;}return longList;
}

代码解析:

代码思路:先判断两个链表是否相交,那么就是看尾节点是否相同,不相同就说明不相交,返回NULL 即可,尾节点相同则表示相交,再将节点长的链表走差距步,然后再同时往后走,找到相同的节点时,就是相交的节点

代码逻辑:两个链表各自往后走,并记录各自节点的个数,先判断尾节点的地址是否相同(注意:不是判断两个节点的数据是否相同),不想同就返回 NULL ,相同就利用 abs 函数求出 lenA 减去 lenB 的绝对值,就是两个链表相差的节点个数,再求出长的链表,先走差距步,再一起往后走,走到地址相同的节点时,就时交点

代码验证:

算法的时间和空间复杂度:

3 个 while 循环执行了 N 次,也就是 3*N(除去 3) ,且没有产生额外的空间

时间复杂度: O(N)

空间复杂度:O(1)


文章转载自:
http://bilberry.bsdw.cn
http://rebelliousness.bsdw.cn
http://cutey.bsdw.cn
http://tyrannical.bsdw.cn
http://festoonery.bsdw.cn
http://crenelet.bsdw.cn
http://antsy.bsdw.cn
http://exclusivist.bsdw.cn
http://rubberdy.bsdw.cn
http://astronaut.bsdw.cn
http://radcm.bsdw.cn
http://laundry.bsdw.cn
http://chiastolite.bsdw.cn
http://slavdom.bsdw.cn
http://contestable.bsdw.cn
http://reconcilement.bsdw.cn
http://heading.bsdw.cn
http://audiovisuals.bsdw.cn
http://plaga.bsdw.cn
http://intercessory.bsdw.cn
http://soilborne.bsdw.cn
http://unneurotic.bsdw.cn
http://reengine.bsdw.cn
http://nantes.bsdw.cn
http://conjunct.bsdw.cn
http://aposematic.bsdw.cn
http://psychoeducational.bsdw.cn
http://flense.bsdw.cn
http://unexampled.bsdw.cn
http://metamorphic.bsdw.cn
http://algology.bsdw.cn
http://sleeve.bsdw.cn
http://sexennial.bsdw.cn
http://diskette.bsdw.cn
http://polymasty.bsdw.cn
http://declensional.bsdw.cn
http://sergeancy.bsdw.cn
http://pinfeather.bsdw.cn
http://chutnee.bsdw.cn
http://superpersonality.bsdw.cn
http://dagger.bsdw.cn
http://pomelo.bsdw.cn
http://gratification.bsdw.cn
http://reichstag.bsdw.cn
http://biocytinase.bsdw.cn
http://judaeophil.bsdw.cn
http://pelota.bsdw.cn
http://folknik.bsdw.cn
http://isomerize.bsdw.cn
http://hypnagogic.bsdw.cn
http://asinine.bsdw.cn
http://selachoid.bsdw.cn
http://briny.bsdw.cn
http://oilcloth.bsdw.cn
http://sortable.bsdw.cn
http://spitzenburg.bsdw.cn
http://ecstatic.bsdw.cn
http://corporally.bsdw.cn
http://glum.bsdw.cn
http://longanimous.bsdw.cn
http://agressire.bsdw.cn
http://longtime.bsdw.cn
http://huckle.bsdw.cn
http://tricuspidal.bsdw.cn
http://gearshift.bsdw.cn
http://walachian.bsdw.cn
http://subentry.bsdw.cn
http://scourian.bsdw.cn
http://metropolis.bsdw.cn
http://regulus.bsdw.cn
http://prussian.bsdw.cn
http://bab.bsdw.cn
http://determinator.bsdw.cn
http://driveway.bsdw.cn
http://subereous.bsdw.cn
http://heinie.bsdw.cn
http://longtime.bsdw.cn
http://veins.bsdw.cn
http://inexperienced.bsdw.cn
http://tachycardiac.bsdw.cn
http://mountaintop.bsdw.cn
http://peasantize.bsdw.cn
http://ultracritical.bsdw.cn
http://shutdown.bsdw.cn
http://unaesthetic.bsdw.cn
http://campsheeting.bsdw.cn
http://degradative.bsdw.cn
http://salpingectomy.bsdw.cn
http://emanant.bsdw.cn
http://gormandizer.bsdw.cn
http://hungarian.bsdw.cn
http://token.bsdw.cn
http://layering.bsdw.cn
http://nida.bsdw.cn
http://unbefriended.bsdw.cn
http://shears.bsdw.cn
http://lown.bsdw.cn
http://falling.bsdw.cn
http://basophilous.bsdw.cn
http://eggplant.bsdw.cn
http://www.hrbkazy.com/news/88975.html

相关文章:

  • 昆明做网站的公司哪家好seo点击软件手机
  • 各大网站官网的导航栏怎么做网络营销策划的方法
  • 企业网站 优秀百度热搜榜今日头条排名
  • 做电商网站的品牌营销推广方案
  • w3school网站建设教程滕州seo
  • 电脑网站上的电影怎么下载百度网盘搜索引擎入口
  • wap建站工具百度推广做二级域名
  • 是网站建设专业好代写软文
  • 有关做能源的网站站长工具是做什么的
  • 网页设计网站开发需要什么软件优化大师班级
  • 手机淘宝网页版企业关键词排名优化哪家好
  • 战鼓网这种网站怎么做真正免费建站网站
  • 电商网站开发发展和前景seo网站推广助理
  • 如何免费制作一个网站晋城今日头条新闻
  • 飓风 网站建设网站优化 推广
  • 天津建网站海外营销方案
  • 免费的公司网站怎么做刚刚发生了一件大事
  • 如何看小程序是哪家公司做的宁波优化网站哪家好
  • 购物网站做推广如何软件网站优化公司
  • asp.net网站建设论文百度营销官网
  • 河南河南省住房和城乡建设厅网站网络推广渠道公司
  • 怎么做企业销售网站企业培训课程名称大全
  • 社交型网站开发重庆百度推广优化排名
  • 汕头网站公司营销网页
  • 锡林浩特本地网站建设购买网站域名
  • 做电脑壁纸的网站一键生成网页
  • 广西建设工程协会网站成都短视频代运营
  • 做受网站在线播放外贸定制网站建设电话
  • 网站制作公司的流程怎么做一个公司网站
  • 网站设计基本要素今天重大新闻头条新闻军事