单链表的增删改查怎么写
时间: 2023-04-09 15:01:05 浏览: 77
有关单向链表的增删改查
对于单链表的增删改查,可以使用以下方法:
1. 增加节点:在链表的末尾添加一个新节点,或者在链表的任意位置插入一个新节点。
2. 删除节点:从链表中删除一个节点,可以是链表的头节点、尾节点或中间节点。
3. 修改节点:修改链表中的某个节点的值。
4. 查找节点:查找链表中某个节点的值。
具体实现方法可以参考以下代码:
//定义链表节点结构体
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
//增加节点
void addNode(ListNode *head, int val) {
ListNode *newNode = new ListNode(val);
ListNode *p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = newNode;
}
//删除节点
void deleteNode(ListNode *head, int val) {
ListNode *p = head;
while (p->next != NULL) {
if (p->next->val == val) {
ListNode *temp = p->next;
p->next = p->next->next;
delete temp;
break;
}
p = p->next;
}
}
//修改节点
void modifyNode(ListNode *head, int val, int newVal) {
ListNode *p = head;
while (p->next != NULL) {
if (p->next->val == val) {
p->next->val = newVal;
break;
}
p = p->next;
}
}
//查找节点
ListNode* searchNode(ListNode *head, int val) {
ListNode *p = head;
while (p->next != NULL) {
if (p->next->val == val) {
return p->next;
}
p = p->next;
}
return NULL;
}
阅读全文