第 8 周数据结构与算法 & 网络与数据库

用户头像
关注
发布于: 2020 年 07 月 29 日

作业一:

以下两题,至少完成一道

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

请用(伪)代码描述算法,并给出时间复杂度和空间复杂度。



思路:

两个链表找到第一个公共节点。

时间复杂度涉及到遍历链表O(m*n),空间复杂度O(m+n)



public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
if (headA == null || headB == null) {
return null;
}
ListNode node1 = headA, node2 = headB;
while (node1 != node2) {
node1 = node1 != null ? node1.next : headB;
node2 = node2 != null ? node2.next : headA;
}
return node1;
}
}

测试用例:
[4,1,8,4,5]
[5,0,1,8,4,5]



请画出 DataNode 服务器节点宕机的时候,HDFS 的处理过程时序图。



作业二:



用户头像

关注

还未添加个人签名 2018.04.25 加入

还未添加个人简介

评论

发布
暂无评论
第8周数据结构与算法&网络与数据库