第八周作业

有两个单向链表(链表长度分别为 m,n),这两个单向链表有可能在某个元素合并,也可能不合并,如下图所示的这样。现在给定两个链表的头指针,在不修改链表的情况下,如何快速地判断这两个链表是否合并?如果合并,找到合并的元素,也就是图中的 x 元素。请用代码(或伪代码)描述算法,并给出时间复杂度。

  1. 计算两个链表的长度,假设M>N,将较长的链表指针前移M-N次,初始化计数器count = 0,使用变量X记录链表头指针的值
  2. 同时遍历两个链表,如果两个链表当前值一样,count加1,如果值不相等,count重置为0
  3. 当移动到下个节点时,判断count是否等于1,如果等于1,X设置为当前值
  4. 遍历结束后,如果count大于0,则说明可以合并,合并的元素为X,如果count等于0,这说明无法合并
伪代码:
int m = linkedNodeA.size();
int n = linkedNodeB.size();
// 判断m和n的大小,这里假设m > n
for (i = 0;i < m-n;i++)
  linkedNodeA.next();
for(i =0;i < n;i++) {
  nodeA = linkedNodeA.next();
  nodeB = linkedNodeB.next();
  if (nodeA.value == nodeB.value) {
    count ++;
  } else {
    count = 0;
  }
  if (count == 1) {
    X = nodeA.value;
  }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 作业部分 区间选点 II 题意 给定一个数轴上的 n 个区间,要求在数轴上选取最少的点使得第 i 个区间 [ai,...
    _fallen阅读 2,905评论 0 0
  • 1、简述osi七层模型和TCP/IP五层模型 OSI七层示意图 OSI七层和TCP/IP五层以及对应网络设备对比示...
    大唐百夫长阅读 1,148评论 0 0
  • 第一题 有两个单向链表(链表长度分别为 m,n),这两个单向链表有可能在某个元素合并,如下图所示的这样,也可能不合...
    anOnion阅读 3,838评论 0 1
  • 一、简述osi七层模型和TCP/IP五层模型 1.1、OSI七层模型: 物理层提供为建立、维护和拆除物理链路所需要...
    N45刘莅轩阅读 1,378评论 0 0
  • 第八课作业: 一.课程亮点和听课感想 二.简述帮助孩子语言发展的20个训练方法? 三.设计2-3个语言活动,展示给...
    眯眯眼华华阅读 4,451评论 0 0

友情链接更多精彩内容