第 8 周 系统架构作业
1、有两个单向链表(链表长度分别为 m,n),这两个单向链表有可能在某个元素合并,也可能不合并,如下图所示的这样。现在给定两个链表的头指针,在不修改链表的情况下,如何快速地判断这两个链表是否合并?如果合并,找到合并的元素,也就是图中的 x 元素。
请用代码(或伪代码)描述算法,并给出时间复杂度。
李老师出这个题目的目的是想让我们用课程上的递归知识来解答
伪代码:
p1=链表 1 头指针(短);
p2=链表 2 头指针(长);
Node getPointer(Node p1,Node p2){
if(p1 ==null || p2==null ){
return null;
}
if(p1==p2){
if(getPointer(p1->next(),p2->next())!=null){
return p1;
}
}else if(p1 != p2){
if(getPointer(p1,p2->next())!=null){
return p1;
}
}else{
retrun null;
}
return null;
}
2、请画出 DataNode 服务器节点宕机的时候,HDFS 的处理过程时序图。
评论