项目、遇到的难点(返回功能比较)
操作系统:
进程和线程
缓存?。。和溢出 并发和并行
死锁
计网:
https
OSI七层模型、分层的意义 、http tcp 在哪层
tcp与udp的区别、tcp怎么可靠通信
长连接短连接、拥塞控制
浏览器缓存和http缓存的区别
DNS过程
堆和栈
手撕:链表反转
function reversePartialList(head, left, right) {
const last = right.next; // 标记 left前一个节点和 right后面的节点
let pre;
if(left == head) { // 注意 left是head 的特殊情况
pre = null;
}else {
let n = head;
while(n){
if(n.next == left){
pre = n;
break;
}
n = n.next;
}
}
function reverse(lNode, rNode) { // 反转left到right之间的链表
if(lNode.next == rNode) return lNode;
const node = reverse(lNode.next, rNode);
lNode.next.next = lNode;
lNode.next = rNode; // 反转后要连接到后面的节点
return node;
}
const res = reverse(left, last);
// 按照left是否为head,有两种情况来返回结结果
if(pre) {
pre.next = res;
return head
}else {
return res;
}
}