在带头结点的单链表表尾处插入一个新元素代码
时间: 2024-03-23 07:16:28 浏览: 133
假设链表节点的结构体定义如下:
```c
typedef struct ListNode {
int val;
struct ListNode *next;
} ListNode;
```
其中,val 表示节点的值,next 表示指向下一个节点的指针。
那么,在带头结点的单链表表尾处插入一个新元素可以按照以下步骤进行:
1. 创建一个新节点并赋值:
```c
ListNode* newNode = (ListNode*)malloc(sizeof(ListNode));
newNode->val = value;
newNode->next = NULL;
```
其中,value 表示要插入的元素值。
2. 找到链表表尾处的节点:
```c
ListNode *p = head;
while (p->next != NULL) {
p = p->next;
}
```
其中,head 表示链表头结点。
3. 将新节点插入到表尾处:
```c
p->next = newNode;
```
完整代码如下:
```c
void insertAtTail(ListNode* head, int value) {
ListNode* newNode = (ListNode*)malloc(sizeof(ListNode));
newNode->val = value;
newNode->next = NULL;
ListNode *p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = newNode;
}
```
需要注意的是,这里的 head 是头结点,而不是第一个元素所在的节点。所以,在调用该函数时,应该传入头结点而不是第一个元素所在的节点。
阅读全文