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

做网站还要数据库吗电商怎么做如何从零开始

做网站还要数据库吗,电商怎么做如何从零开始,游戏网站logo制作,网络营销推广方法餐饮欢迎大家来我们主页进行指导 LaNzikinh-CSDN博客 160. 相交链表 - 力扣(LeetCode) 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节…

欢迎大家来我们主页进行指导
LaNzikinh-CSDN博客


160. 相交链表 - 力扣(LeetCode)

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

图示两个链表在节点 c1 开始相交

题目数据 保证 整个链式结构中不存在环。

注意,函数返回结果后,链表必须 保持其原始结构 。

自定义评测:

评测系统 的输入如下(你设计的程序 不适用 此输入):

  • intersectVal - 相交的起始节点的值。如果不存在相交节点,这一值为 0
  • listA - 第一个链表
  • listB - 第二个链表
  • skipA - 在 listA 中(从头节点开始)跳到交叉节点的节点数
  • skipB - 在 listB 中(从头节点开始)跳到交叉节点的节点数

评测系统将根据这些输入创建链式数据结构,并将两个头节点 headA 和 headB 传递给你的程序。如果程序能够正确返回相交节点,那么你的解决方案将被 视作正确答案 。

首先做这个题目有两个核心的关键就是,1.你要判断它是不是相交的。2.它的交点


思路一:暴力求解

依次去A链表中的每个节点跟B链表中的所有节点比较,如果有地址相同的节点,就是相交,第一个相同的就是交点

时间复杂度为O(N^2),非常麻烦,这里就不多说了,我们直接来说思路二


思路二:长度差法

核心:尾结点相同,就是相交否则就不相交,长的链表先走长度差步,再同时走,第一个相同的就是交点

2.1计算长度

先保存两个头结点用来比较长度,因为我遍历完了两个链表,所以把是不是相交一起判断了

//先保存两个头结点用来比较长度
struct ListNode* tailA = headA;
struct ListNode* tailB = headB;
//计算A的长度
int lenA = 1;
while (tailA->next != NULL)
{lenA++;tailA = tailA->next;
}
//计算B的长度
int lenB = 1;
while (tailB->next != NULL)
{lenB++;tailB = tailB->next;
}
//是不是相交一起判断
if (tailA != tailB)
{return NULL;
}

2.2判断那个长?

这个用了一个非常巧妙的办法来写出了如何判断这两个长,因为我不知道这两个最开始到底是谁长

//abs取绝对值
int gap = abs(lenA - lenB);
//先假设A长
struct ListNode* long = headA;
struct ListNode* short = headB;
//在做出判断,如果A短就互换
if (lenA < lenB)
{struct ListNode* long = headB;struct ListNode* short = headA;
}

2.3长的先走,短的在一起走

//长的先走gap步
while (gap--)
{long = long->next;
}
//等长的走完,在一起走,之后返回向遇点就可以了
while (long != short)
{long = long->next;short = short->next;
}
//返回short也可以
return long;

2.4总代码

struct ListNode* getIntersectionNode(struct ListNode* headA, struct ListNode* headB)
{//先保存两个头结点用来比较长度struct ListNode* tailA = headA;struct ListNode* tailB = headB;//计算A的长度int lenA = 1;while (tailA->next != NULL){lenA++;tailA = tailA->next;}//计算B的长度int lenB = 1;while (tailB->next != NULL){lenB++;tailB = tailB->next;}if (tailA != tailB){return NULL;}//abs取绝对值int gap = abs(lenA - lenB);//先假设A长struct ListNode* long = headA;struct ListNode* short = headB;//在做出判断,如果A短就互换if (lenA < lenB){struct ListNode* long = headB;struct ListNode* short = headA;}//长的先走gap步while (gap--){long = long->next;}//等长的走完,在一起走,之后返回向遇点就可以了while (long != short){long = long->next;short = short->next;}//返回short也可以return long;
}

 

http://www.qdjiajiao.com/news/7055.html

相关文章:

  • 上海模板网站公司域名注册查询系统
  • 公司网站推广的方法搜狗广告联盟
  • 做彩票网站都是怎么拉人的济南seo网站关键词排名
  • 广州做网站一般要多少钱百度商业账号登录
  • 临夏州住房和城乡建设厅网站在线代理浏览网页
  • 网站开发招标文件武汉全网营销推广公司
  • 巨鹿建设银行网站首页北京软件培训机构前十名
  • 河南最新疫情公布标题seo是什么意思
  • 青岛网站建设的方案品牌推广与传播怎么写
  • 山东省品牌建设促进会网站怎样在百度上做广告推广
  • 洞口做网站推荐口碑营销策略有哪些
  • 什么网站做h5不收费江苏网站建设制作
  • 餐饮企业网站设计百度检索入口
  • ppt做仿网站点击效果优化大师怎么强力卸载
  • b2b都有哪些平台seo排名平台
  • 用别人的资源做网站比较好的软文发布平台
  • 网站怎么看被百度收录营销策划方案案例
  • 南充市住房与城乡建设网站软文价格
  • 自己做返利网站吗seo网站管理
  • 花木企业网站源码东莞seo软件
  • 做app模板下载网站深圳百度国际大厦
  • 做网站组织结构框架例子windows优化软件
  • 常熟滨江开发区人才网内存优化大师
  • 廊坊哪里有做网站建设的百度指数下载手机版
  • 源码下载工具热狗seo顾问
  • 做民宿加盟哪些网站比较好石家庄疫情防控最新政策
  • 哪个网站看电影做便宜网上销售平台怎么做
  • 成都网站建设成都网络公司kol合作推广
  • 在线教育网站开发经验简历填写网店运营策划方案
  • 网站建设 成都今网科技北京seo业务员