我有一个基本的链表问题,我试图在下面解决。对于我的方法、算法的正确性(甚至编码风格),我将不胜感激。该问题需要一个函数来删除循环链接列表中所有出现的 int 并返回列表中的任何节点或 NULL(当列表为空时)。
这是我到目前为止的一些 C++ 代码:
struct Node{
Node* next;
int data;
};
Node* deleteNode(Node* &node, int num){
if(!node){
return NULL;
}
Node* given = node;
Node* del;
while(node->next != given){
if(node->next->data == num){
del = node->next;
node->next = node->next->next;
delete del;
}
node = node->next;
}
//Check if the first node needs to be deleted, with variable node pointing to last element
if(given->data == num){
node->next = given->next;
delete given;
}
return node;
}