【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
上次面试,面试官问到这个问题,我怎么也想不出来啊.....
链表怎么实现时间复杂度O(1) 删除节点呢?
delete(node *n, node *prior) {
prior->next = n->next;
free(n);
}
对于单向链表让他把删除节点的前一个节点传进来.开放性题目开放性回答,他要扯淡你跟着扯淡
谁能搞到O(1)我给谁100万 最多是log
删除前总要先查找吧?
把当前节点的下一个节点删除,然后把删除节点的数据赋给当前节点;
p->data=p->next->data;
p->next=p->next->next;
狸猫换太子,呵呵
delete(node *n, node *prior) {
prior->next = n->next;
free(n);
}
对于单向链表让他把删除节点的前一个节点传进来.开放性题目开放性回答,他要扯淡你跟着扯淡
谁能搞到O(1)我给谁100万 最多是log
删除前总要先查找吧?
把当前节点的下一个节点删除,然后把删除节点的数据赋给当前节点;
p->data=p->next->data;
p->next=p->next->next;
狸猫换太子,呵呵