以下是使用C语言实现删除链表中指定值节点的代码:
”`c
#include
// 定义链表节点结构体 struct ListNode {
int val;
struct ListNode* next;
};
// 删除链表中指定值的节点 struct ListNode* removeElements(struct ListNode* head, int val) {
// 处理头结点为目标值的情况
while (head != NULL && head->val == val) {
struct ListNode* temp = head;
head = head->next;
free(temp);
}
// 处理其他节点为目标值的情况
struct ListNode* current = head;
while (current != NULL && current->next != NULL) {
if (current->next->val == val) {
struct ListNode* temp = current->next;
current->next = current->next->next;
free(temp);
} else {
current = current->next;
}
}
return head;
}
// 测试函数 void test() {
// 创建示例链表:1 -> 2 -> 6 -> 3 -> 4 -> 5 -> 6,目标值为6
struct ListNode* node1 = (struct ListNode*)malloc(sizeof(struct ListNode));
struct ListNode* node2 = (struct ListNode*)malloc(sizeof(struct ListNode));
struct ListNode* node3 = (struct ListNode*)malloc(sizeof(struct ListNode));
struct ListNode* node4 = (struct ListNode*)malloc(sizeof(struct ListNod<br/><br/><br/><font size=1 color=#CCCCCC>内容由零声教学AI助手提供,问题来源于学员提问</font>