字节二面凉经(凉透)
1、linux系统怎么查看进程cpu使用率,具体哪些列/
1.2 l inux下的负载情况
2、内存分配
3、DNS查询,本地DNS服务器是什么
4、TCP有什么作用
5、TCP/IP四层结构为什么没有表示层和会话层
6、IP:A、B、C类地址
7、进程与线程的区别,进程切换一定比线程慢吗
8、算法题:
链表反转:每隔k个进行反转
链表:<x的在前面,>=x在后面,要求相对顺序正确[常数复杂度]
第2个一面就答歪了,二面又歪了,我无语了
其实都不难,但是我基础太差了。。
这是第二份的代码,写完了感觉还可以发出来
```cpp
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* reverse(ListNode* head,ListNode* tail){
ListNode *p = head,*q,*pre = NULL;
bool ok = true;
while(ok){
if(p == tail)ok=false;
q = p->next;//记录下一个
p->next = pre;//这一次跑到上一层
pre = p;//记录上一个节点
p = q;//跳到下一个
}
return tail;
}
ListNode* reverseKGroup(ListNode* head, int k){
ListNode *tmphead = new ListNode(-1),*ans = tmphead,*p = head,*q;
ListNode *st = head,*ed = NULL;
int now = 0;
while(p != NULL){
now++;
q = p->next;//保存下一个节点
if(now == 1)st = ed = p;
else if(now == k)ed = p;//标记起始点
if(now == k){
tmphead->next = reverse(st,ed);//tmphead是上一组最后一个点,指向这组的开头
tmphead = st;//表示这一组的最后一个
now = 0;
st = ed = NULL;//用完及时清空
}
p = q;//跳到下一个点
}
tmphead->next = st;
return ans->next;
}
};
```
美的集团公司福利 765人发布