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

电子商务网站的建设心得体会网络营销软文范例大全800

电子商务网站的建设心得体会,网络营销软文范例大全800,微信公众号可以做几个微网站吗,好玩的网页游戏传奇目录 题目要求 手搓两个相交简易链表 代码实现 题目要求 两个单链表的头节点 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://www.wooajung.com/news/28819.html

相关文章:

  • 网站建设深圳广告推广费用
  • 响应式设计网站案例泰安网站制作推广
  • 旅游网站 分析互联网舆情
  • 企业网站建设制作公司国内专业的seo机构
  • 网站建设套餐价格软文
  • 沈阳的网站制作公司google搜索引擎入口
  • 香港集运网站怎么做博客网站登录入口
  • 咋样看网站域名是哪个服务商的什么是营销模式
  • 推广模式怎么写南昌seo优化
  • 浏览网站 需要我安装wordpress电商关键词一般用哪些工具
  • 网站如何做快排竞价交易规则
  • 公安部的网站备案北京网站优化实战
  • 自助智能建站系统如何做推广呢
  • 云南省政府网站建设长春网站开发
  • wordpress主题seven菏泽seo
  • 网站怎么做支付系统上海抖音推广
  • 深圳网站建设营销策划百度收录需要多久
  • 哪些网站需要icp备案seo综合查询接口
  • 新闻列表做的最好的网站便宜的seo官网优化
  • 建网站的外包公司网站制作的基本流程是什么
  • wordpress设置非管理员济南网站seo哪家公司好
  • 做前端项目怎么进行网站切图乐陵seo外包
  • 秦皇岛抚宁区建设局网站quark搜索引擎入口
  • 网站建设实验分析总结青海网站seo
  • 杭州模板网站网络营销公司简介
  • 维护网站宁波seo推广联系方法
  • 用qt做网站可以吗本地网络seo公司
  • 做网站的思路怎么写培训机构有哪些
  • 拉萨网站建设系统宁波网站制作设计
  • 常用的网站制作软件竞价推广托管多少钱