每日面试题
include<file.h>和#include"file.h"的区别
①前者从编译器自带的库函数中寻找文件,从标准库路径开始搜索文件。
②后者是从自定义的文件中寻找文件,寻找不到再到库函数中寻找文件。
全局变量和局部变量的区别
①全局变量存储在静态数据区,占用静态的存储单元
②局部变量存储在栈中,只有在函数被调用过程中才开始分配存储单元
每日算法
编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。
class Solution {
public:
ListNode* removeDuplicateNodes(ListNode* head) {
if (head == NULL || head->next == NULL) {
// 如果链表为空或只有一个节点,则无需删除重复项
return head;
}
set<int> s; //set的作用只是用于判断这个元素值是否被访问过
ListNode* p = head;
s.insert(p->val); //将头结点的值先加入到set中
while (p->next != NULL) {
if (!s.count(p->next->val)) {
s.insert(p->next->val);
p = p->next;
} else {
p->next = p->next->next;
}
}
return head;
}
};